1. 程式人生 > >索引的資料結構

索引的資料結構

B-tree

為了描述B-Tree,首先定義一條資料記錄為一個二元組[key, data],key為記錄的鍵值,對於不同資料記錄,key是互不相同的;data為資料記錄除key外的資料。那麼B-Tree是滿足下列條件的資料結構:

1.d>=2,即B-Tree的度; 2.h為B-Tree的高; 3.每個非葉子結點由n-1個key和n個指標組成,其中d<=n<=2d; 4.每個葉子結點至少包含一個key和兩個指標,最多包含2d-1個key和2d個指標,葉結點的指標均為NULL; 5.所有葉結點都在同一層,深度等於樹高h; 6.key和指標相互間隔,結點兩端是指標; 7.一個結點中的key從左至右非遞減排列; 8.如果某個指標在結點node最左邊且不為null,則其指向結點的所有key小於v(key1),其中v(key1)為node的第一個key的值。 9.如果某個指標在結點node最右邊且不為null,則其指向結點的所有key大於v(keym),其中v(keym)為node的最後一個key的值。 10.如果某個指標在結點node的左右相鄰key分別是keyi和keyi+1且不為null,則其指向結點的所有key小於v(keyi+1)且大於v(keyi)