tavl.h - plan9port - [fork] Plan 9 from user space
(HTM) git clone git://src.adamsgaard.dk/plan9port
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
tavl.h (644B)
---
1 /* #pragma lib "libavl.a" */
2 /* #pragma src "/sys/src/libavl" */
3
4 AUTOLIB(avl)
5
6 typedef struct Avl Avl;
7 typedef struct Avltree Avltree;
8 typedef struct Avlwalk Avlwalk;
9
10 /* #pragma incomplete Avltree */
11 /* #pragma incomplete Avlwalk */
12
13 struct Avl
14 {
15 Avl *p; /* parent */
16 Avl *n[2]; /* children */
17 int bal; /* balance bits */
18 };
19
20 Avl *avlnext(Avlwalk *walk);
21 Avl *avlprev(Avlwalk *walk);
22 Avlwalk *avlwalk(Avltree *tree);
23 void deleteavl(Avltree *tree, Avl *key, Avl **oldp);
24 void endwalk(Avlwalk *walk);
25 void insertavl(Avltree *tree, Avl *new, Avl **oldp);
26 Avl *lookupavl(Avltree *tree, Avl *key);
27 Avltree *mkavltree(int(*cmp)(Avl*, Avl*));