資料結構 樹與二叉樹

2021-08-19 18:47:40 字數 1175 閱讀 8125

1、樹的定義

樹是一種

非線性的資料結構。

樹是n(n>=0)個結點的有限集,在任意一棵非空樹中:

1)有且僅有乙個特定的被稱為

根(root)的結點

2)當n>1時,其餘結點可分為m(m>0)個互不相交的有限集,其中每個集合本身又是一棵樹,並且稱為根的

子樹(subtree)

3)每棵子樹也是由唯一的根結點和若干棵互不相交的子樹組成的

4)樹的結點數目可以為0,當為0時,這棵樹稱為一棵

空樹2、樹的基本術語

1)結點:結點不僅包含資料元素,而且包含指向子樹的分支

2)結點的度:結點擁有的子樹個數或者分支的個數

3)樹的度:樹中各節點度的最大值

4)葉子結點:又叫做

終端結點,指度為0的結點

5)非終端結點:又叫做

分支結點

,指度不為0的結點

6)孩子:結點的子樹的根

7)雙親:與孩子的定義對應

8)兄弟:同乙個雙親的孩子之間互為兄弟

9)祖先:從根到某結點的路徑上的所有結點

10)子孫:以某結點為根的子樹中的所有結點,都是該結點的子孫

11)層次:從根開始,根為第一層,根的孩子為第二層,根的孩子的孩子為第三層,以此類推

12)樹的高度(深度):樹中結點的最大層次

13)結點的深度和高度:

1、結點的深度是從根結到該結點路徑上的結點個數;

2、 從某結點往下走可能到達多個葉子結點,對應了多條通往這些葉子結點的路徑,其中最長的那條路徑的長度即為該結點在樹中的高度

3、根結點的高度為樹的高度

14)堂兄弟:雙親在 同一層的結點互為堂兄弟

15)有序樹:樹中結點的子樹從左到右是有次序的,不能交換,這樣的樹叫作有序樹

16)無序樹:樹中結點的子樹沒有順序,可以任意交換,這樣的樹叫作無序樹

17)豐滿樹:即為理想平衡樹,要求除最底層外,其他層都是滿的

18)森林:若干棵互不相交的樹的集合

3、樹的儲存結構

1)順序儲存結構

樹的順序儲存結構中最簡單直觀的是雙親儲存結構

2)鏈式儲存結構

樹的鏈式儲存結構最常用的有以下兩種:

孩子儲存結構:實質上就是圖的鄰接表儲存結構,樹就是一種特殊的圖

孩子兄弟儲存結構:與樹和森林與二叉樹的相互轉換關係密切

資料結構 樹與二叉樹

一 性質 1 在二叉樹中,第i層的結點總數不超過2 i 1 2 深度為h的二叉樹最多有2 h 1個結點 h 1 最少有h個結點 3 對於任意一棵二叉樹,如果其葉結點數為n0,而度數為2的結點總數為n2,則n0 n2 1 4 具有n個結點的完全二叉樹的深度為int log2n 1 5 給定n個節點,能...

資料結構 樹與二叉樹

樹是一類重要的非線性資料結構,是以分支關係定義的層次結構 定義 樹 tree 是n n 0 個結點的有限集t,其中 有且僅有乙個特定的結點,稱為樹的根 root 當n 1時,其餘結點可分為m m 0 個互不相交的有限集t1,t2,tm,其中每乙個集合本身又是一棵樹,稱為根的子樹 subtree 特點...

資料結構 樹與二叉樹

13 樹 森林與二叉樹 14 哈夫曼樹 15 並查集 16 層次遍歷二叉樹 typedef struct nodebitnode,bitree 乙個二叉樹有n個結點,則有2n個鏈域,其中有n 1個空鏈域 非空鏈域 n 1 出邊數 void preorder bitree root void inor...