B樹和B+樹的區別

B-樹

       是一種多路搜索樹(並不是二叉的),一顆m階的B-樹,或爲空樹,或者:

       1.定義任意非葉子結點最多隻有M個兒子;且M>2;
       2.根結點的兒子數爲[2, M];
       3.除根結點以外的非葉子結點的兒子數爲[M/2, M];
       4.每個結點存放至少M/2-1(取上整)和至多M-1個關鍵字;(至少2個關鍵字)
       5.非葉子結點的關鍵字個數=指向兒子的指針個數-1;
       6.非葉子結點的關鍵字:K[1], K[2], …, K[M-1];且K[i] < K[i+1];
       7.非葉子結點的指針:P[1], P[2], …, P[M];其中P[1]指向關鍵字小於K[1]的子樹,P[M]指向關鍵字大於K[M-1]的子樹,其它P[i]指向關鍵字屬於(K[i-1], K[i])的子樹;

       8.所有葉子結點位於同一層;


應用:

          B-樹常應用於文件系統。


B+樹

       B+樹是B-樹的變體,也是一種多路搜索樹:

       1.其定義基本與B-樹同,除了:
       2.非葉子結點的子樹指針與關鍵字個數相同;
       3.非葉子結點的子樹指針P[i],指向關鍵字值屬於[K[i], K[i+1])的子樹(B-樹是開區間);
       5.爲所有葉子結點增加一個鏈指針;

       6.所有關鍵字都在葉子結點出現;


應用:   
         B+樹常應用於數據庫的索引。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章