44c9ad5903c6eda277c02ad921ffa69dbea5bf16
[svn/Cll1h/.git] / demos / trees.c
1 #include "cll1.h"
2
3 def_mem(Leaf)
4 {
5 int value;
6 array(Leaf);
7 };
8
9 program
10 {
11 Leaf leaf,root=NULL;
12 int newkey;
13
14 for_ints(newkey, 8,1,-2,745,-32,-64,27,4 ) printf(" [%d]",i)
15 {
16 leaf=get_mem(Leaf);
17
18 //init
19 leaf->__next=NULL;
20 leaf->__seek=NULL;
21 leaf->__key=newkey;
22
23 //grow tree
24 {
25 void *prev = NULL, *newleaf = leaf;
26
27 //find where to store
28 for(leaf=root; leaf && leaf->__key <= newkey ; leaf=leaf->__next)
29 {
30 prev = leaf;
31 if(leaf->__seek && leaf->__seek->key <= newkey) leaf=leaf->__seek;
32 }
33
34 //store new node
35 if(prev)
36 {
37
38 }
39 else
40 {
41
42 }
43
44 //reindex B+ tree
45 for(leaf=root; leaf->__next ; leaf=leaf->__next)
46 {
47 if (leaf->__seek)
48 {
49 if (leaf->__key <= newkey)
50 leaf->__seek=leaf->__seek->__next;
51 }
52 else
53 leaf->__seek=leaf->__next->__seek;
54 }
55 }
56 }
57 }
This page took 0.289636 seconds and 3 git commands to generate.