2 #pragma src "/sys/src/libavl"
4 typedef struct Avl Avl;
5 typedef struct Avltree Avltree;
6 typedef struct Avlwalk Avlwalk;
8 #pragma incomplete Avltree
9 #pragma incomplete Avlwalk
14 Avl *n[2]; /* children */
15 int bal; /* balance bits */
18 Avl *avlnext(Avlwalk *walk);
19 Avl *avlprev(Avlwalk *walk);
20 Avlwalk *avlwalk(Avltree *tree);
21 void deleteavl(Avltree *tree, Avl *key, Avl **oldp);
22 void endwalk(Avlwalk *walk);
23 void insertavl(Avltree *tree, Avl *new, Avl **oldp);
24 Avl *lookupavl(Avltree *tree, Avl *key);
25 Avltree *mkavltree(int(*cmp)(Avl*, Avl*));
26 Avl* searchavl(Avltree *tree, Avl *key, int neighbor);