Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#pragma	lib	"libavl.a"
2
#pragma src "/sys/src/libavl"
3
 
4
typedef struct Avl	Avl;
5
typedef struct Avltree	Avltree;
6
typedef struct Avlwalk	Avlwalk;
7
 
8
#pragma incomplete Avltree
9
#pragma incomplete Avlwalk
10
 
11
struct Avl
12
{
13
	Avl	*p;		/* parent */
14
	Avl	*n[2];		/* children */
15
	int	bal;		/* balance bits */
16
};
17
 
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);