B+樹

B + 樹是一種樹數據結構 ， 通常用於數據庫和操作系統的文件系統中 。 B + 樹的特點是能夠保持數據穩定有序 ， 其插入與修改擁有較穩定的對數時間複雜度 。 B + 樹元素自底向上插入 ， 這與二叉樹恰好相反 。 B + 樹在節點訪問時間遠遠超過節點內部訪問時間的時候 ， 比可作爲替代的實現有着實在的優勢 。 這通常在多數節點在次級存儲比如硬盤中的時候出現 。 通過最大化在每個內部節點內的子節點的數目減少樹的高度 ， 平衡操作不經常發生 ， 而且效率增加了 。 這種價值得以確立通常需要每個節點在次級存儲中佔據完整的磁盤塊或近似的大小 。 B + 背後的想法是內部節點可以有在預定範圍內的可變數目的子節點 。 因此 ， B + 樹不需要像其他自平衡二叉查找樹那樣經常的重新平衡 。 對於特定的實現在子節點數目上的低和高邊界是固定的 。 例如 ， 在 2 - 3 B 樹 （ 常簡稱爲2 - 3 樹 ） 中 ， 每個內部節點只可能有 2 或 3 個子節點 。 如果節點有無效數目的子節點則被當作處於違規狀態 。 B + 樹的創造者 Rudolf Bayer 沒有解釋B代表什麼 。 最常見的觀點是B代表平衡 ( balanced ) ， 因爲所有的葉子節點在樹中都在相同的級別上 。 B也可能代表Bayer ， 或者是波音 （ Boeing ） ， 因爲他曾經工作于波音科學研究實驗室 。