Basic
B+樹和B樹類似(有關B樹:http://www.cnblogs.com/YuNanlong/p/6354029.html,區(qū)別主要在于葉節(jié)點,如果在父節(jié)點的Child
數(shù)組中指向某一葉節(jié)點指針的下標為Index,則該葉節(jié)點中的最大數(shù)據(jù)值與其父節(jié)點中Key[Index]
的值相等,并且除最右側的葉節(jié)點之外所有葉節(jié)點都有一個指針指向其右邊的兄弟節(jié)點,因此所有非葉節(jié)點中數(shù)據(jù)值都在葉節(jié)點中有相同的值與之對應。
下面是一些聲明和定義:
typedef int ElementType;typedef int* PtrElementType;typedef enum Bool BoolType;enum Bool{ False = 0, True = 1};typedef struct TreeNode *PtrBpNode;typedef struct TreeNode BpNode;struct TreeNode{ int Num; BoolType IsLeaf; PtrElementType Key; PtrBpNode *Child; PtrBpNode Next; };typedef struct Tree *PtrBp;struct Tree{ PtrBpNode Root; };void ShiftKey(Pt