1. 程式人生 > 其它 >樹型資料結構

樹型資料結構

樹的概念

  由一個或多個(n>=0)結點構成有限集T,有且僅有一個結點稱為根(root),當n>1時,其餘的結點分為m(m>=0)個互不相交的有限集合T1 T2...,每個集合本身又是棵樹,稱作根樹的子樹。

 

樹的結構特點

  1,非線性結構,有一個前驅,但可能有多個直接後繼。

  2,樹的定義具有遞迴行,樹中還有樹。

  3,樹可以為空即結點個數為0。

 

若干術語

根 ,即根結點(沒有前驅)
葉子,即終端結點,(沒有後繼)
森林,指m棵不相交的集合

 

有序樹, 結點各子結點樹從左至右有序,不能互換。
無序樹, 結點各子節點可以互換位置。
雙親, 即上層的那個節點(patent)
孩子, 即下層結點的子樹(child)
兄弟. 同一雙親的同層結點(sibling)
堂兄 即雙親位於同一層的結點,但並非同一雙親cousin


結點 即樹的資料元素
結點的度 結點掛接的子樹數
結點層次 從根結點到該層的層數。
終端結點 即度為0的結點,即葉子
分支結點 除樹根以外的結點
樹的度 結點度的最大值

樹的深度(或高度) 所以結點曾次最大值

 

二叉樹

n(n>0)個結點有限集合,由一個根結點以及兩顆互不相交的分別稱為左子樹和右子樹的二叉樹組成
邏輯 一對二(1:2)

基本特點

1,每個結點最多隻有兩棵子樹
2,左子樹和右子樹次序不能顛倒(有序樹)。
基本形態


o o o o Ø
/ \ / \
o o o o


二叉樹性質
1,在二叉樹的第i層至多右2^(i-1)個節點;(i>0)
2,深度為k的二叉樹至多右2^(k)-1個結點;
3 ,
4具有n個結點的完全二叉樹的深度必為log2(n)+1;
5,對完全二叉樹,若從上至下,從左至右編號,則編號為i的結點,其左孩子編號為2i,其有孩子編號為2i+1;其雙親編號為i/2(i=1時為根,除外)


滿二叉樹,
一顆深度為k且有2^k-1個節點的二叉樹。



完全二叉樹,除最後一層外,每一層上的結點均達到最大值,在最後一層只缺少若干右邊的若干節點。


不是完全二叉樹 的補上空結點即可。