//grow tree
{
void *prev = NULL, *newleaf = leaf;
//grow tree
{
void *prev = NULL, *newleaf = leaf;
+
+ //find where to store
for(leaf=root; leaf && leaf->__key <= newkey ; leaf=leaf->__next)
{
prev = leaf;
if(leaf->__seek && leaf->__seek->key <= newkey) leaf=leaf->__seek;
}
for(leaf=root; leaf && leaf->__key <= newkey ; leaf=leaf->__next)
{
prev = leaf;
if(leaf->__seek && leaf->__seek->key <= newkey) leaf=leaf->__seek;
}
+
+ //reindex B+ tree
+ for(leaf=root; leaf->__next ; leaf=leaf->__next)
+ {
+ if (leaf->__seek)
+ {
+ if (leaf->__key <= newkey)
+ leaf->__seek=leaf->__seek->__next;
+ }
+ else
+ leaf->__seek=leaf->__next->__seek;
+ }