一棵b樹t是具有以下性質的有根樹:
1) 每個節點x有以下域:
a) n[x],當前儲存在結點x中的關鍵字數
b) n[x]個關鍵字本身,以非降序存放
c) leaf[x]乙個布林值,如果x是葉子的話,它為true
2) 每個結點x還包含n[x]+1個指向其子女的指標c_1[x],c_2[x],...,c_[x]。
3) 個關鍵字key_i[x]對儲存在各子樹中的關鍵字範圍加以分割。
4) 每個葉結點具有相同的深度,即樹的高度h。
5) 每個葉結點包含的關鍵字數有乙個上下界。用最小度數t>=2來表示。
a) 非根的結點至少有t-1個關鍵字,非根的內結點至少有t個子女。非空樹的根結點至少有乙個關鍵字。
b) 每個結點可包含至多2t-1個關鍵字。
t=2時,2-3-4樹。
b樹的高度
如果n>=2,則對任意一棵包含n個關鍵字、高度為h、最小度數t>=2的b樹t,有:h <= log_t
18.1-1 為什麼不允許b樹的最小度數t為1?
若度為一,則至少有0個關鍵字,至多有1個關鍵字,就是個鏈。
18.1-2 t應取什麼樣的值,才能使圖中的樹是棵合法的b樹。
圖中至少有2個子女,最多有4個子女。因此t=2。
18.1-3 請給出表示的最小度數為2的所有合法的b樹。略。
18.1-4 一棵高度為h的b樹中,可以儲存最多多少個關鍵字?用最小度數t函式表示。
18.1-5 如果紅黑樹中的每個黑結點吸收它的紅子女,並把它們的子女併入自身,描述這個結果的資料結構。
黑結點至多有兩個紅子女。每個子女最多帶來乙個分支。
因此是一棵至多有3個關鍵字,4個子女的樹。
《演算法導論》筆記 B樹
演算法 cc c 資料結構 b樹是平衡樹的一種,主要用於操作儲存在磁碟等二級儲存裝置上的大量資料。相比起記憶體 主存 來說,磁碟操作的速度非常慢 慢幾個數量級 所以涉及到儲存在磁碟的資料的時候,儘量減少磁碟的讀取和寫入操作對於提高操作速度是非常重要的。b樹就是針對這個特點進行設計以滿足相應要求的。b...
演算法導論B樹學習筆記
定義就不重複說明了 b樹與b 樹的不同是,b 樹中非葉子節點的節點也會出現在葉子節點中 b樹要求至少t 1,至多2t 1 b樹一 插入 1 關於高度的定理 h l ogtn 1 2h leqslant log t frac h logt 2n 1 2 操作 抽象出來就是插入到某個節點,滿了之後從中間...
《演算法導論》筆記 第2章
本章出現了全書第乙個演算法 插入排序。插入排序並不是最直觀的排序演算法,拿它做第乙個講解應該有其他的理由。通過插入排序的講解,偽 約定 迴圈不變式 演算法分析等最基礎的知識被帶了出來。此後又講了第二個演算法 合併排序,並引出了演算法設計中的兩種常見型別 增量法 incremental 和分治法 di...