第五章小結

2022-08-26 04:30:08 字數 2090 閱讀 5653

第五

章——樹(生命不息,種樹不止)

無序樹:樹中任意節點的子結點之間沒有順序關係,這種樹稱為無序樹,也稱為自由樹;

有序樹:樹中任意節點的子結點之間有順序關係,這種樹稱為有序樹;

二叉樹:每個節點最多含有兩個子樹的樹稱為二叉樹;

完全二叉樹

滿二叉樹

霍夫曼樹:帶權路徑最短的二叉樹稱為哈夫曼樹或最優二叉樹;

在二叉樹遍歷方面有分為先序遍歷,中序遍歷,和後序遍歷。

插入操作:

1

struct

node2;

78 pnode bt =null;910

11//

遞迴方法插入節點

12 pnode insert(pnode root, int

x)13

21else

if(x < root->val)

24else

27return

root;28}

2930

//非遞迴方法插入節點

31void insert_bst(pnode q, int

x)32

41while(q->lchild != p && q->rchild !=p)

46else

49}

50else

54else57}

58}59return

;60 }

view code

刪除操作:

1

bool delete_bst(pnode p, int x) //

返回乙個標誌,表示是否找到被刪元素

2

10else

if(x < p->val)

14else18}

19if(p == null)

2223

if(p->lchild == null && p->rchild == null)

27else

if(q->lchild ==p)

30else

33free(p); //

釋放節點p 34}

35else

if(p->lchild == null || p->rchild == null)

40else

43}

44else

48else

if(q->lchild == p && p->rchild)

51else

if(q->rchild == p && p->lchild)

54else57}

58free

(p);59}

60else

67 p->val = s->val; //

把節點s的值賦給p

68if(t ==p)

71else

74free

(s); 75}

76return

find;

77 }

view code

查詢操作:

1 pnode search_bst(pnode p, intx)2

8else

if(x < p->val)

11else14}

15if(p ==null)

18return

p;19 }

view code

而在這次新學了queue標頭檔案,在此**,都是乾貨cppreference.com來玩呀!

而在深入虎穴中,陣列越界問題真的是神魔啊

1

int input(node *&a)2

20}2122

//找出根在陣列的下標

23for(i=1;i<=n;++i)

24if (!vi[i]) break

;

25return

i;26 }

5 6 第五章小結

5.6 第五章小結 在這一章中,我們討論了值,討論了有關函式的詳細資訊,突出了乙個事實,在 f 中,函式就是值!我們看到幾個建立不同的值和對應組合型別的方法。從討論元組開始,給我們乙個儲存多個值為乙個的方法。接下來,我們討論了差別聯合,使我們能夠表示包含多種選項的值。宣告差別聯合時,指定哪些情況,然...

第五章學習小結

1 第五章主要學習了與樹相關的知識,從二叉樹拓展到一棵普通的樹,再從一棵普通的樹拓展到哈夫曼樹,再從樹拓展到森林的概念。5 1節學習了樹和二叉樹的定義,對節點,根節點,葉子結點,深度,度等概念進行了初步的了解。5 4節了解了與二叉樹相關的一些性質,其中引出了完全二叉樹與滿二叉樹的概念,從這一節開始也...

第五章學習小結

一 小結 1.二叉樹 定義與性質 1 二叉樹有五種基本形態 2 在二叉樹的 第 i 層上至多有 2 i l 個結點 i 1 3 深度為 k 的 二叉樹至多有 2 k 1 個結點 k 1 4 葉子結點數 度為2結點數 1 5 滿二叉樹是完全二叉樹的一種 還有更常見的非完全二叉樹 二叉樹的儲存與遍歷 1...