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*));