資料結構7--樹和二叉樹初識
1.樹的基本概念
樹是一種重要的非線性結構,他是由n個節點組成的有限集合(n>0)
n=0時,稱為空樹,樹的頂端節點稱為樹的根,其餘節點可分為若干個互不相交的子集,每個子集本身又是一棵樹,稱為
根的子樹。
這棵樹有9個節點,所有的度=節點數-1,所以度為8,D,E,F,H,I為子節點
同一個節點的孩子互稱為兄弟,如果兩個節點的父節點不同,但是父節點在同一個層次上,則互稱為堂兄弟。
樹中各節點之間的連線稱為邊。
從一個節點到另一個節點所經過的節點的順序稱為路徑。
從根節點到任意的節點都只有唯一的路徑。
森林是指n個不相交的樹的集合
2.二叉樹
每個節點的度數均不超過2的有序樹稱為二叉樹
每個節點最多都兩個子節點,度數最大為2
節點的子樹有左右之分
在第i層上,最多有2的i次方個節點
如果一棵二叉樹的葉子節點的數量為n0,度數為2的節點的數量為n2,節點總數為n
度數為1的節點的數量為n1,那麼,n=n0+n1+n2 n=n1*1+n2*2+1
如果一個二叉樹的葉節點的數量為n0,度數為2的節點的數量為n2,則 n0=n2+1
高度為H的二叉樹最多有2的(H-1)次方-1個節點
滿二叉樹:除了葉子節點以外其他的節點都有兩個度,滿二叉樹不存在度為1的節點
滿二叉樹的所有節點的度都是2或者0,沒有度為1的節點。
兩者的區別:
完全二叉樹:除最後一層可能不滿以外,其他各層都達到該層節點的最大數,最後一層如果不滿,該層所有節點都全部靠左排滿二叉樹:所有層的節點數都達到最大
完全二叉樹:在滿的基礎上從右向左連續刪除若干個葉子節點,滿二叉樹其實就是完全二叉樹
3.二叉樹的儲存結構
順序儲存:只適合滿二叉樹和完全二叉樹,當樹既不是完全二叉樹又不是滿二叉樹的時候:順序儲存:造成了資源浪費
鏈式儲存:
瞭解二叉樹的基本概念以後下一節我們java程式碼實現二叉樹的鏈式儲存,敬請期待。。。。