From c558a99e0be506a9abdf677f0ca4490644e05fc1 Mon Sep 17 00:00:00 2001 From: Taru Karttunen Date: Wed, 30 Mar 2011 16:47:56 +0300 Subject: Import sources from 2011-03-30 iso image - sys/include --- sys/include/avl.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 sys/include/avl.h (limited to 'sys/include/avl.h') diff --git a/sys/include/avl.h b/sys/include/avl.h new file mode 100755 index 000000000..242ee1ba3 --- /dev/null +++ b/sys/include/avl.h @@ -0,0 +1,26 @@ +#pragma lib "libavl.a" +#pragma src "/sys/src/libavl" + +typedef struct Avl Avl; +typedef struct Avltree Avltree; +typedef struct Avlwalk Avlwalk; + +#pragma incomplete Avltree +#pragma incomplete Avlwalk + +struct Avl +{ + Avl *p; /* parent */ + Avl *n[2]; /* children */ + int bal; /* balance bits */ +}; + +Avl *avlnext(Avlwalk *walk); +Avl *avlprev(Avlwalk *walk); +Avlwalk *avlwalk(Avltree *tree); +void deleteavl(Avltree *tree, Avl *key, Avl **oldp); +void endwalk(Avlwalk *walk); +void insertavl(Avltree *tree, Avl *new, Avl **oldp); +Avl *lookupavl(Avltree *tree, Avl *key); +Avltree *mkavltree(int(*cmp)(Avl*, Avl*)); +Avl* searchavl(Avltree *tree, Avl *key, int neighbor); -- cgit v1.2.3