some work (do not compile)
[svn/Cll1h/.git] / demos / trees.c
index e216d0c32543e9333f672826d23857b7ccbb0f06..44c9ad5903c6eda277c02ad921ffa69dbea5bf16 100644 (file)
@@ -21,12 +21,37 @@ program
   leaf->__key=newkey;
 
   //grow tree
-  for(leaf=root; leaf && leaf->__key <= newkey ; leaf=leaf->__next)
   {
-   if(leaf->__seek->key <= newkey)
+    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;
+    }
+    
+    //store new node
+    if(prev)
+    {
+    
+    }
+    else
+    {
+    
+    }
+    
+    //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.128326 seconds and 4 git commands to generate.