資料結構與演算法之二叉樹

2021-10-08 12:37:18 字數 2263 閱讀 2582

陣列的優缺點:

鍊錶的優缺點:

缺點:在進行查詢時,效率仍然較低,需要從頭節點開始遍歷,時間複雜度為o(n)。

樹的優點:能提高資料儲存和讀取的效率,比如利用二叉搜尋樹,既可以保證資料的查詢速度,同時也可以保證資料的插入,刪除,修改的速度。

樹的常用術語(結合示意圖理解):

樹的基本性質:

二叉樹:每個節點最多只能有兩個子節點的樹,也就是每個節點的度最大為2。

二叉樹的特點:

二叉樹的性質:

2^h-1的推導:

在高度為h的樹上,樹的高度即為層數,第一層最多有2^0個節點,第二層最多有2^1個節點...第n層最多有2^(h-1)個節點

設s為總節點個數,那麼:

s=2^0+2^1+2^2+...+2^(h-1) (公式1)

2s=2*(2^0+2^1+2^2+...+2^(h-1))=2^1+2^2+...+2^h (公式2)

使用公式2減去公式1得出s=2^h-2^0=2^h-1

n0=n2+1的推導:

已知非空二叉樹的葉子節點個數為n0,度為2的節點個數為n2,假設度為1的節點個數為n1,那麼有:

樹的總節點個樹為n=n0+n1+n2

樹的邊條數為t=n1+2*n2(度為1的節點有一條邊,度為2的節點有兩條邊)=n-1(每個節點頭上都有一條邊,除了根節點)=n0+n1+n2-1(將上面的n的公式代入)

即有n1+2*n2=n0+n1+n2-1,消除左右公共項,得出n2=n0-1,也就是n0=n2+1

真二叉樹:所有節點的度要麼為0,要麼為2。

滿二叉樹:最後一層節點的度都為0,其他節點的度都為2。

滿二叉樹是一棵特殊的真二叉樹。

在同樣高度的二叉樹中,滿二叉樹的葉子節點數量最多、總節點數量最多。

假設滿二叉樹的高度為h(h>=1),那麼:

完全二叉樹:二叉樹的所有葉子節點都在最後一層或者倒數第二層,而且最後一層的葉子節點在左邊連續,倒數第二層的葉子節點在右邊連續。

完全二叉樹從根結點至倒數第2層是一棵滿二叉樹。

滿二叉樹是一棵特殊的完全二叉樹。

完全二叉樹的性質:

h=floor(log2(n))+1的推導:

已知完全二叉樹的高度為h(h>=1),總節點的數量為n:

那麼總節點數量至少有2^0+2^1+2^2+...+2^(h-1)+1=2^(h-1)個(從根節點到倒數第二層的滿二叉樹+最後一層乙個節點),

最多有2^0+2^1+2^2+...+2^h=2^h-1個(滿二叉樹),

即2^(h-1)<=n<=2^h-1<2^h

對等式兩邊取對數得出:h-1<=log2(n)一棵有n個節點的完全二叉樹(n>0),從上到下、從左到右對節點從1開始進行編號,對任意第i個節點:

一棵有n個節點的完全二叉樹(n>0),從上到下、從左到右對節點從0開始進行編號,對任意第i個節點:

題目:如果一棵完全二叉樹有768個節點,求葉子節點的個數?

答案:768/2=384

假設完全二叉樹有n個節點,度為0的節點個數為n0,度為1的節點個數為n1,度為2的節點個數為n2,那麼有

n=n0+n1+n2,前面有公式n0=n2+1

即n=n0+n1+n0-1=2n0+n1-1

即n0=(n-n2+1)/2

完全二叉樹的n1要麼為0,要麼為1

當n1為1時,n0=n/2,n一定是偶數

當n1為0時,n0=(n+1)/2,n必然是奇數

總結公式:

n0=floor((n+1)/2)=ceiling(n/2)

n1+n2=floor(n/2)=ceiling((n–1)/2)

資料結構與演算法之二叉樹

樹同時具有鍊錶和陣列的優點,關於樹的術語有 根 樹頂端的節點 葉子節點 沒有子節點的節點 樹那個節點所對應的資料結構 節點物件類,包含資料 public class node 將資料插到樹中 public void inser int id,double dd public boolean dele...

資料結構與演算法之二叉樹概念

樹示意圖和常用術語 樹的常用術語 結合示意圖理解 1 節點 2 根節點 3 父節點 4 子節點 5 葉子節點 沒有子節點的節點 6 節點的權 節點值 7 路徑 從root節點找到該節點的路線 8 層9 子樹 10 樹的高度 最大層數 11 森林 多顆子樹構成森林 二叉樹的概念 1 樹有很多種,每個節...

資料結構與演算法之二叉樹查詢

二叉樹 查詢指定節點 要求1 請編寫前序查詢,中序查詢和後序查詢的方法。2 並分別使用三種查詢方式,查詢 herono 5 的節點 3 並分析各種查詢方式,分別比較了多少次 思路分析 實現 public class treedemo class binarytree 前序遞迴遍歷 public vo...