GIT.Harvie.CZ
/
svn
/
Cll1h
/
.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
some work (do not compile)
[svn/Cll1h/.git]
/
demos
/
trees.c
diff --git
a/demos/trees.c
b/demos/trees.c
index 788989ee00e57f8ac5114d34c6a4a78ce98e4c6c..44c9ad5903c6eda277c02ad921ffa69dbea5bf16 100644
(file)
--- a/
demos/trees.c
+++ b/
demos/trees.c
@@
-23,12
+23,15
@@
program
//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;
}
+ //store new node
if(prev)
{
if(prev)
{
@@
-37,7
+40,18
@@
program
{
}
{
}
-
+
+ //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;
+ }
}
}
}
}
}
}
This page took
0.112503 seconds
and
4
git commands to generate.