資料結構(一)二叉樹基礎知識總結

2021-08-21 10:30:02 字數 2665 閱讀 8948

一、樹的定義

樹是一種資料結構,它是由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為奇數時)

3、二叉查詢樹

定義:二叉查詢樹又被稱為二叉搜尋樹。設x為二叉查詢樹中的乙個結點,x結點包含關鍵字key,結點x的key值計為key[x]。如果y是x的左子樹中的乙個結點,則key[y]<=key[x];如果y是x的右子樹的乙個結點,則key[y]>=key[x]

在二叉查詢樹中:

(1)若任意結點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值。

(2)任意結點的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值。

(3)任意結點的左、右子樹也分別為二叉查詢樹。

(4)沒有鍵值相等的結點。

資料結構(一) 二叉樹

二叉樹是由n n 0 個結點組成的有序集合,集合或者為空,或者是由乙個根節點加上兩棵分別稱為左子樹和右子樹的 互不相交的二叉樹組成。假設二叉樹節點總數為n,度數為1的節點個數為n1,則n n0 n1 n2成立,除根節點外,其它節點通過一條樹枝且僅通過一條樹枝與其父節點相連,而二叉樹中樹枝總數為n1 ...

二叉樹基礎知識總結

題外話一 樹的定義 樹是一種資料結構,它是由n n 1 個有限結點組成乙個具有層次關係的集合。樹具有的特點有 1 每個結點有零個或多個子結點 2 沒有父節點的結點稱為根節點 3 每乙個非根結點有且只有乙個父節點 4 除了根結點外,每個子結點可以分為多個不相交的子樹。樹的基本術語有 若乙個結點有子樹,...

二叉樹基礎知識總結

一 樹的定義 樹是一種資料結構,它是由n n 1 個有限結點組成乙個具有層次關係的集合。樹具有的特點有 1 每個結點有零個或多個子結點 2 沒有父節點的結點稱為根節點 3 每乙個非根結點有且只有乙個父節點 4 除了根結點外,每個子結點可以分為多個不相交的子樹。樹的基本術語有 若乙個結點有子樹,那麼該...