樹與二叉樹學習

2022-04-05 01:28:21 字數 2052 閱讀 8347

第一塊:介紹二叉樹的一些基本知識

1.1:二叉樹的基本概念:

二叉樹是每個結點最多有兩個子樹的樹結構

1.2:二叉樹的五種基本形態和兩種特殊形態:

五種基本形態:

兩種特殊形態:

1.3:二叉樹的性質:

a、在二叉樹的第i層上最多有2^(i-1)個結點(i>=1)。

b、高度為k的二叉樹,最多有2^k-1個結點(k>=0)。

c、對任何一棵二叉樹,如果其葉結點有n個,度為2的非葉子結點有m個,則

n = m + 1。------終端結點=度為二的非葉結點+1----n0=n2+1

1.4:二叉樹的儲存結構—順序儲存和鏈式儲存

見文件:

可參考部落格

遞迴遍歷:

2.1:先序遍歷 (根左右)    

2.2:中序遍歷 (左根右)

2.3:後序遍歷 (左右根)

層序遍歷:一層一層遍歷

將樹轉換為二叉樹:

1. 在所有兄弟結點之間加一連線

2. 對每個結點,除了保留與其長子的連線外,去掉該結點與其它孩子的連線。

將乙個森林轉換為二叉樹:

將森林中的每棵樹變為二叉樹

因為轉換所得的二叉樹的根結點的右子樹均為空,故可將各二叉樹的根結點視為兄弟從左至右連在一起,就形成了一棵二叉樹

二叉樹轉換為樹

加線。若某結點x的左孩子結點存在,則將這個左孩子的右孩子結點、右孩子的右孩子結點、右孩子的右孩子的右孩子結點…,都作為結點x的孩子。將結點x與這些右孩子結點用線連線起來。

去線。刪除原二叉樹中所有結點與其右孩子結點的連線。二叉樹轉換為森林:

二叉樹轉換為森林:

假如一棵二叉樹的根節點有右孩子,則這棵二叉樹能夠轉換為森林,否則將轉換為一棵樹

1.從根節點開始,若右孩子存在,則把與右孩子結點的連線刪除。再檢視分離後的二叉樹,若其根節點的右孩子存在,則連線刪除…。直到所有這些根節點與右孩子的連線都刪除為止。

2.將每棵分離後的二叉樹轉換為樹。

更多例題請見

1了解基本概念,什麼是哈夫曼樹?

哈夫曼樹是一種帶權路徑長度最短的二叉樹,也稱為最優二叉樹。

如何構造哈夫曼樹並畫出其對應的哈弗慢編碼是重點,要考

所以(b)的帶權路勁最小,故其是最優二叉樹(哈夫曼樹)

2掌握構建哈夫曼樹

見文件:

3哈夫曼編碼

利用哈夫曼樹求得的用於通訊的二進位制編碼稱為哈夫曼編碼。樹中從根到每個葉子節點都有一條路徑,對路徑上的各分支約定指向左子樹的分支表示"0"碼,指向右子樹的分支表示"1"碼,取每條路徑上的"0"或"1"的序列作為各個葉子節點對應的字元編碼,即是哈夫曼編碼。

用二叉樹設計哈夫曼字首編碼

見部落格引入二叉線索樹的目的是什麼:找乙個節點的前驅後繼的時候,比非二叉線索樹強

樹是一種重要的非線性結構,具有一對多或者多對一的關係

度:乙個結點所擁有的子樹的個數稱為結點的度

葉子結點或者終端結點:度為0的結點

非葉子節點或分支或者非終端結點:度不為0的結點

樹的度:是樹內各結點度最大的值

結點數=總度數+1

樹的家族譜:孩子,祖先,雙親,堂兄弟

層次,深度:最大的層次

有序樹:樹中結點各子樹看成從左到右是有次序的

二叉樹 滿二叉樹與完全二叉樹

二叉樹 binary tree 是n n 0 個元素的有限集合,該集合為空或者為由乙個稱為 根 的元素及兩個不相交的 被分別稱為左子樹和右子樹的二叉樹組成 二叉樹的基本特點 每個結點最多有兩棵子樹 左子樹和右子樹是有順序的,且不可顛倒 圖一1 結點 二叉樹中的每乙個元素都稱為結點。通常二叉樹的許多名...

樹與二叉樹

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

樹與二叉樹

建立 先序二叉樹,中序二叉樹,後序二叉樹。給定兩種遍歷序列 前序中序或後序中序 重塑二叉樹 遍歷 判斷乙個節點是否存在於二叉樹中 二叉樹的遍歷 先序,中序,後序 遞迴 非遞迴 層次遍歷 從上到下或從下到上列印 zigzag遍歷方式層次遍歷 二叉樹性質 二叉樹中葉子節點的個數 二叉樹第k層節點數目 二...