我正在尝试使用以下属性创建B树:
每个节点x都包含以下属性:
根据此规范,我将如何实现节点的结构:
struct Node{
...?
}
答案 0 :(得分:0)
绘制时的概念结构是这样的。
a b c d
/ | | | \
la bab bbc bcd gd
la = less than a
bab = between a and b
bbc = between b and c
bcd = between c and d
gd = greater than d
指针多于元素。
所以N阶的b树最多有N个孩子。因此,使用BTREE_ORDER
作为此值,并确保BTREE_ORDER
大于1。
结构最有效地完成
struct Node{
size_t numNodes;
KEY_TYPE Key[BTREE_ORDER -1];
struct Node * Children[BTREE_ORDER];
}
因此它有BTREE_ORDER-1
个密钥和BTREE_ORDER
个子节点的空间。安排取决于代码,并且
Children[0] Key[0] Children[1] Key[1] .... Key[numNodes - 2] Children[ numNodes - 1]