資料結構 樹

2021-10-03 20:37:34 字數 1804 閱讀 1615

內容來自維基百科

在電腦科學中,二叉樹(英語:binary tree)是每個節點最多只有兩個分支(即不存在分支度大於2的節點)的樹結構。通常分支被稱作「左子樹」或「右子樹」。二叉樹的分支具有左右次序,不能隨意顛倒。

二叉查詢樹(英語:binary search tree),也稱為二叉搜尋樹有序二叉樹(ordered binary tree)或排序二叉樹(sorted binary tree),是指一棵空樹或者具有下列性質的二叉樹:

若任意節點的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值;

若任意節點的右子樹不空,則右子樹上所有節點的值均大於它的根節點的值;

任意節點的左、右子樹也分別為二叉查詢樹;

沒有鍵值相等的節點。

二叉查詢樹相比於其他資料結構的優勢在於查詢、插入的時間複雜度較低。為o(l

ogn)

o(log\;n)

o(logn

)。二叉查詢樹是基礎性資料結構,用於構建更為抽象的資料結構,如集合、多重集、關聯陣列等。

平衡樹是電腦科學中的一類資料結構,為改進的二叉查詢樹。一般的二叉查詢樹的查詢複雜度取決於目標結點到樹根的距離(即深度),因此當結點的深度普遍較大時(這兒是我加的:比如退化為鍊錶),查詢的均攤複雜度會上公升。為了實現更高效的查詢,產生了平衡樹

在這裡,平衡指所有葉子的深度趨於平衡,更廣義的是指在樹上所有可能查詢的均攤複雜度偏低。

各種平衡樹:

b樹(英語:b-tree)是一種自平衡的樹,能夠保持資料有序。這種資料結構能夠讓查詢資料、順序訪問、插入資料及刪除的動作,都在對數時間內完成。b樹,概括來說是乙個一般化的二叉查詢樹(binary search tree)乙個節點可以擁有2個以上的子節點。與自平衡二叉查詢樹不同,b樹適用於讀寫相對大的資料塊的儲存系統,例如磁碟。b樹減少定位記錄時所經歷的中間過程,從而加快訪問速度。b樹這種資料結構可以用來描述外部儲存。這種資料結構常被應用在資料庫和檔案系統的實現上。

b+ 樹是一種樹資料結構,通常用於資料庫和作業系統的檔案系統中。b+ 樹的特點是能夠保持資料穩定有序,其插入與修改擁有較穩定的對數時間複雜度。b+ 樹元素自底向上插入,這與二叉樹恰好相反。

b+ 樹在節點訪問時間遠遠超過節點內部訪問時間的時候,比可作為替代的實現有著實在的優勢。這通常在多數節點在次級儲存比如硬碟中的時候出現。通過最大化在每個內部節點內的子節點的數目減少樹的高度,平衡操作不經常發生,而且效率增加了。這種價值得以確立通常需要每個節點在次級儲存中佔據完整的磁碟塊或近似的大小。

b+ 背後的想法是內部節點可以有在預定範圍內的可變數目的子節點。因此,b+ 樹不需要像其他自平衡二叉查詢樹那樣經常的重新平衡。對於特定的實現在子節點數目上的低和高邊界是固定的。例如,在 2-3 b 樹(常簡稱為2-3 樹)中,每個內部節點只可能有 2 或 3 個子節點。如果節點有無效數目的子節點則被當作處於違規狀態。

b+ 樹的創造者 rudolf bayer 沒有解釋b代表什麼。最常見的觀點是b代表平衡(balanced),因為所有的葉子節點在樹中都在相同的級別上。b也可能代表bayer,或者是波音(boeing),因為他曾經工作於波音科學研究實驗室。

資料結構 樹

樹的概念 1.家族樹 在現實生活中,有入如下血統關係的家族可用樹形圖表示 張源有三個孩子張明 張亮和張麗 張明有兩個孩子張林和張維 張亮有三個孩子張平 張華和張群 張平有兩個孩子張晶和張磊。以上表示很像一棵倒畫的樹。其中 樹根 是張源,樹的 分支點 是張明 張亮和張平,該家族的其餘成員均是 樹葉 而...

資料結構 樹

1 定義 樹是一種非線性結構,是一種一對多的資料結構。分析樹的結構,我們用遞迴的方法,根結點下面又可以看做是子樹。2 樹的儲存結構 我們一般用孩子兄弟法儲存。也就是把乙個結點的左邊第乙個孩子放在此結點的左邊孩子,把此結點的右兄弟放在此結點的右邊孩子。這樣就產生了二叉樹。二叉樹和樹可以相互對應。3 二...

資料結構 樹

二叉樹性質回顧 滿二叉樹 完全二叉樹等 給定一棵二叉樹,要求分層遍歷該二叉樹,即從上到下按層次訪問該樹,每一層單獨輸出一行,每一層要求訪問的順序為從左到右。我們在遍歷的過程中將該層節點的孩子節點壓入乙個佇列,這樣就可以實現從上到下一層一層地遍歷該二叉樹。層序遍歷 並分層列印 如果不用分層的話只用佇列...