C++B树
B 樹(B-tree)、B+ 樹(B±tree)
特點
?一般化的二叉查找樹(binary search tree)
?“矮胖”,內部(非葉子)節點可以擁有可變數量的子節點(數量范圍預先定義好)
應用
?大部分文件系統、數據庫系統都采用B樹、B+樹作為索引結構
區別
?B+樹中只有葉子節點會帶有指向記錄的指針(ROWID),而B樹則所有節點都帶有,在內部節點出現的索引項不會再出現在葉子節點中。
?B+樹中所有葉子節點都是通過指針連接在一起,而B樹不會。
B樹的優點
對于在內部節點的數據,可直接得到,不必根據葉子節點來定位。
B+樹的優點
?非葉子節點不會帶上 ROWID,這樣,一個塊中可以容納更多的索引項,一是可以降低樹的高度。二是一個內部節點可以定位更多的葉子節點。
?葉子節點之間通過指針來連接,范圍掃描將十分簡單,而對于B樹來說,則需要在葉子節點和內部節點不停的往返移動。
總結
- 上一篇: C++平衡二叉树(AVL树)
- 下一篇: s3c2440移植MQTT