]> git.lizzy.rs Git - plan9front.git/blob - sys/include/avl.h
add libsat
[plan9front.git] / sys / include / avl.h
1 #pragma lib "libavl.a"
2 #pragma src "/sys/src/libavl"
3
4 typedef struct Avl Avl;
5 typedef struct Avltree Avltree;
6
7 struct Avl {
8         Avl *c[2];
9         Avl *p;
10         schar balance;
11 };
12
13 struct Avltree {
14         int (*cmp)(Avl*, Avl*);
15         Avl *root;
16 };
17
18 Avltree *avlinit(Avltree*, int(*)(Avl*, Avl*));
19 Avltree *avlcreate(int(*)(Avl*, Avl*));
20 Avl *avllookup(Avltree*, Avl*, int);
21 Avl *avldelete(Avltree*, Avl*);
22 Avl *avlinsert(Avltree*, Avl*);
23 Avl *avlmin(Avltree*);
24 Avl *avlmax(Avltree*);
25 Avl *avlnext(Avl*);
26 Avl *avlprev(Avl*);