【資料結構導論之樹和二叉樹總結篇】

我是太陽啦啦啦發表於2016-10-16

前言:

樹是一類重要的資料結構,作為樹形結構的代表,無論在自考的學習過程還是軟考的學習過程中,我們都與之深之接觸。今天,小編來總結一下樹,此篇博文以資料結構導論第四章為參考,進行總結!希望給看博文的你帶來收穫!

核心:


想一想,關於樹?我們都涉及到了什麼:
這個章節的標題為樹和二叉樹。裡面的內容主要圍繞樹、森林和二叉樹以及它們之間的關係來展開本章節的論述的!其中遍歷、轉換、求結點這些屬於常考內容,且容易掌握的,二儲存結構這塊內容涉及到程式碼的實現,是資料結構導論中最後的大題考試內容。其中,還有裡面的小知識點,最關鍵的還是多做題來實踐啊!

一、導圖優先

二、重要的知識點小結

1.深度為k的樹最多有2^k -1個節點;

2.任意二叉樹,度為0的節點數=度為2的節點數+1;

3.如果i為父親的編號,則孩子的編號為2i和2i+1;

4.結點的度:樹上任一結點所擁有的子樹的數目稱為該結點的度。

5.二叉樹第i層上的結點數目最多為2^(i-1)(i≥1)。

6.如果需要順序儲存的非完全二叉樹,首先必須用某種方法將其轉化為完全二叉樹,為此可增設若干個虛擬結點。

7.二叉連結串列,具有n個結點的二叉樹,有2n個指標域,其中只有n-1個用來指向結點的左、右孩子,其餘的n+1個指標域為NULL.

8.給定一組值P1,...,Pk,如何構造一棵有K個葉子且分別以這些值為權的判定樹,使用權得其平均比較次數最小。滿足上述條件的判定樹稱為哈夫曼樹。

9.哈夫曼樹中沒有度數為1的分支節點。給定一組值P1...Pk,如何構造一棵有K個葉子且分別以這些值為權的判定樹,使用權得其平均比較次數最小。滿足上述條件的判定樹稱為哈夫曼樹

三、遍歷

  • 二叉樹的遍歷

遍歷即將樹的所有結點訪問且僅訪問一次。按照根節點位置的不同分為前序遍歷,中序遍歷,後序遍歷。

前序遍歷:根節點->左子樹->右子樹
中序遍歷:左子樹->根節點->右子樹
後序遍歷:左子樹->右子樹->根節點
eg:求下面樹的三種遍歷

 

前序遍歷:abdefgc

中序遍歷:debgfac

後序遍歷:edgfbca

注意:這裡的三種遍歷,體現在二叉樹中的每棵子樹中,按照這個規則去遍歷

  • 森林的遍歷

只有前序遍歷和中序遍歷。

前序遍歷:根節點->左子樹

中序遍歷:子樹->根節點


四、轉化

樹轉二叉樹


1.連線兄弟結點

2.保留第一個兄弟結點與父結點的連線,斷開其他兄弟與父結點的連線

3.以根為軸心順時針旋轉45度。







總結:

學習的過程中,要善於總結,這也是成長的過程,未來,加油吧!


相關文章