二叉樹:二叉樹是n(n>=0)個結點的有限集合,它或為空(n=0), 或是由乙個根及兩棵互不相交的左子樹和右子樹組成,且樹中左子樹和右子樹也均為二叉樹;二叉樹可以是空集合, 左子樹 、右子樹也可以為空
二叉樹的特點:
二叉樹可以是空的,稱空二叉樹;
每個結點最多只能有兩個孩子;
子樹有左、右之分且次序不能顛倒;
二叉樹具有下列重要性質:
在二叉樹的第i(i>=1)層上至多有2^(i-1)個 結點。
深度為k(k>=1)的二叉樹至多有(2^k)-1個 結點,最少有k個節點
對任何一棵二叉樹,如果其終端結點數為n0(葉子節點n0個),度為2的結點數為n2;則n0=n2+1。 即:葉結點數n0=度為2的結點數+1
二叉查樹的遍歷方式:
滿二叉樹:乙個二叉樹,如果每乙個層的結點數都達到最大值,則這個二叉樹就是滿二叉樹。也就是說,深度為k(k>=1)且有(2^k)-1個結點的二叉樹就是滿二叉樹
滿二叉樹的性質:
乙個層數為k的滿二叉樹總結點數為:2^k-1,因此滿二叉樹的結點個數一定是奇數;第i層上的結點數為:2^(i-1)
乙個層數為k的滿二叉樹的葉子結點個數(也就是最後一層):2^(k-1)
滿二叉樹的結點要麼是葉子結點,度為0,要麼是度為2的結點,不存在度為1的結點
完全二叉樹:深度為k的二叉樹中,k-1層結點數是滿的2^(k-2),k層結點是左連續的(即結點編號是連續的);高度為h(h>=2)的完全二叉樹至少有2^(h-2)個葉子結點。
完全二叉樹的性質:
滿二叉樹是完全二叉樹的特殊形態, 即如果一棵二叉樹是滿二叉樹, 則它必定是完全二叉樹
1、順序儲存:利用陣列
如圖:完全二叉樹的順序儲存我們只需需要至上而下,至左而右給各個節點編號,該編號就是元素在陣列中的索引;
如圖非完全二叉樹:我們需要增加虛擬節點,如果乙個高度為h並且節點個數也是h的右支樹,卻需要2^h-1個儲存空間, 所以該儲存方式比較浪費空間
2、鏈式儲存:利用鍊錶
如圖:二叉鍊錶表示法 ,二叉鍊錶,只能由父節點推導子節點,不能逆向
如圖:三叉鍊錶表示法,三叉煉表相較於二叉鍊錶,多了乙個指向雙親的指標域,增加了空間但是對於樹的操作來說更加靈活。
資料結構筆記 樹 二叉樹 滿二叉樹
二叉樹滿二叉樹 樹是n n 0 個結點的有限集。結點為零的樹為空樹。任意一棵非空樹中 1.有且有乙個特定的稱為根的結點 2.當n 1時,其餘結點可分為m m 0 個互不相交的有限集,其中每乙個集合又是一棵樹,並稱為根的子樹。1.結點擁有的子樹數稱為結點的度 2.度為0的結點稱為葉結點或分支結點,除根...
資料結構 樹結構 二叉樹 完全二叉樹 滿二叉樹
樹結構是一種描述非線性層次關係的資料結構。除根結點外,其餘每個結點有且僅有乙個直接前驅。每個結點可以有任意多個直接後繼。英文名詞表示 tree,root,node,leaf,edge,child,subtree 要麼二叉樹沒有根結點,是一棵空樹。要麼二叉樹由根結點,左子樹,右子樹組成,且左子樹和右子...
資料結構滿二叉樹和完全二叉樹
國內教程定義 乙個二叉樹,如果每乙個層的結點數都達到最大值,則這個二叉樹就是滿二叉樹。也就是說,如果乙個二叉樹的層數為k,且結點總數是 2 k 1 則它就是滿二叉樹如果一棵深度為k,有n個結點的二叉樹中各結點能夠與深度為k的順序編號的滿二叉樹從1到n標號的結點一一對應的二叉樹稱為 完全二叉樹 一一對...