樹是一種資料結構,它是由n(n>=1)個有限的結點組成的具有層次關係的集合。
樹具有的特點有:
(1)每個結點有零個或多個子結點
(2)沒有父節點的結點稱為根節點
(3)每乙個非根結點有且只有乙個父節點
(4)除了根結點外,每個子結點可以分為多個不相交的子樹。
樹的基本術語有:
若乙個結點有子樹,那麼該結點稱為子樹根的「雙親」,子樹的根稱為該結點的「孩子」。有相同雙親的結點互為「兄弟」。乙個結點的所有子樹上的任何結點都是該結點的後裔。從根結點到某個結點的路徑上的所有結點都是該結點的祖先。
結點的度:結點擁有的子樹的數目
葉子結點:度為0的結點
分支結點:度不為0的結點
樹的度:樹中結點的最大的度
層次:根結點的層次為1,其餘結點的層次等於該結點的雙親結點的層次加1
樹的高度:樹中結點的最大層次
1、二叉樹的定義
二叉樹是每個結點最多有兩個子樹的樹結構。它有五種基本形態:二叉樹可以是空集;根可以有空的左子樹或右子樹;或者左、右子樹皆為空。
2、二叉樹的定義
性質1:二叉樹第i層上的結點數目最多為2i-1(i>=1)
性質2:深度為k的二叉樹至多有2k-1個結點(k>=1)
性質3:包含n個結點的二叉樹的高度至少為(log2n)+1
性質4:在任意一棵二叉樹中,若終端結點的個數為n0,度為2的結點數為n2,則n0=n2+1
3、性質4的證明
性質4:在任意一棵二叉樹中,若終端結點的個數為n0,度為2的結點數為n2,則n0=n2+1
證明:因為二叉樹中所有結點的度數均不大於2,不妨設n0表示度為0的結點個數,n1表示度為1的結點個數,n2表示度為2的結點個數。三類結點加起來為總結點個數,於是便可得到:n=n0+n1+n2 (1)
由度之間的關係可得第二個等式:n=n0*0+n1*1+n2*2+1即n=n1+2n2+1 (2)
將(1)(2)組合在一起可得到n0=n2+1
1、滿二叉樹
定義:高度為h,並且由2h-1個結點組成的二叉樹,稱為滿二叉樹。
2、完全二叉樹
定義:一棵二叉樹中,只有最下面兩層結點的度可以小於2,並且最下層的葉結點集中在靠左的若干位置上,這樣的二叉樹稱為完全二叉樹。
特點:葉子結點只能出現在最下層和次下層,且最下層的葉子結點集中在樹的左部。顯然,一棵滿二叉樹必定是一棵完全二叉樹,而完全二叉樹未必是滿二叉樹。
面試題:如果乙個完全二叉樹的結點總數為768個,求葉子結點的個數。
由二叉樹的性質知:n0=n2+1,將之帶入768=n0+n1+n2中得:768=n1+2n2+1,因為完全二叉樹度為1的結點個數要麼為0,要麼為1,那麼就把n1=0或者1都代入公式中,很容易發現n1=1才符合條件。所以算出來n2=383,所以葉子結點個數n0=n2+1=384。
總結規律:如果一棵完全二叉樹的結點總數為n,那麼葉子結點等於n/2(當n為偶數時)或者(n+1)/2(當n為奇數時)
定義:二叉查詢樹又被稱為二叉搜尋樹。設x為二叉查詢樹中的乙個結點,x結點包含關鍵字key,結點x的key值計為key[x]。如果y是x的左子樹中的乙個結點,則key[y]<=key[x];如果y是x的右子樹的乙個結點,則key[y]>=key[x]
在二叉查詢樹種:
(1)若任意結點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值。
(2)任意結點的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值。
(3)任意結點的左、右子樹也分別為二叉查詢樹。
(4)沒有鍵值相等的結點。
二叉樹 基本知識點
資料結構實驗之二叉樹二 遍歷二叉樹 problem description 已知二叉樹的乙個按先序遍歷輸入的字串行,如abc,de,g,f,其中,表示空結點 請建立二叉樹並按中序和後序的方式遍歷該二叉樹。input 連續輸入多組資料,每組資料輸入乙個長度小於50個字元的字串。output 每組輸入資...
資料結構二叉樹知識點總結
術語 1.節點的度 乙個節點含有的子樹的個數稱為該節點的度 2.葉節點或終端節點 度為零的節點 3.非終端節點或分支節點 度不為零的節點 4.父親節點或父節點 若乙個節點含有子節點,則這個節點稱為其子節點的父節點 5.兄弟節點 具有相同父節點的節點互稱為兄弟節點 6.節點的層次 從根開始定義起,根為...
資料結構二叉樹知識點總結
1.節點的度 乙個節點含有的子樹的個數稱為該節點的度 2.葉節點或終端節點 度為零的節點 3.非終端節點或分支節點 度不為零的節點 4.父親節點或父節點 若乙個節點含有子節點,則這個節點稱為其子節點的父節點 5.兄弟節點 具有相同父節點的節點互稱為兄弟節點 6.節點的層次 從根開始定義起,根為第1層...