1 /*
2  * Copyright 2003 by Sun Microsystems, Inc.	All rights reserved.
3  * Use is subject to license terms.
4  */
5 
6 /* tree.h - declare structures used by tree library
7  *
8  * vix 22jan93 [revisited; uses RCS, ANSI, POSIX; has bug fixes]
9  * vix 27jun86 [broken out of tree.c]
10  *
11  * $Id: tree.h,v 8.3 2002/12/03 05:26:48 marka Exp $
12  */
13 
14 #pragma ident	"%Z%%M%	%I%	%E% SMI"
15 
16 #ifndef	_TREE_H_INCLUDED
17 #define	_TREE_H_INCLUDED
18 
19 
20 #ifndef __P
21 # if defined(__STDC__) || defined(__GNUC__)
22 #  define __P(x) x
23 # else
24 #  define __P(x) ()
25 # endif
26 #endif
27 
28 /*
29  * tree_t is our package-specific anonymous pointer.
30  */
31 #if defined(__STDC__) || defined(__GNUC__)
32 typedef	void *tree_t;
33 #else
34 typedef	char *tree_t;
35 #endif
36 
37 #ifdef	ORIGINAL_ISC_CODE
38 /*
39  * Do not taint namespace
40  */
41 #define	tree_add	__tree_add
42 #define	tree_delete	__tree_delete
43 #define	tree_init	__tree_init
44 #define	tree_mung	__tree_mung
45 #define	tree_srch	__tree_srch
46 #define	tree_trav	__tree_trav
47 #else
48 #endif
49 
50 typedef	struct tree_s {
51 		tree_t		data;
52 		struct tree_s	*left, *right;
53 		short		bal;
54 	}
55 	tree;
56 
57 
58 void	tree_init	__P((tree **));
59 tree_t	tree_srch	__P((tree **, int (*)(), tree_t));
60 tree_t	tree_add	__P((tree **, int (*)(), tree_t, void (*)()));
61 int	tree_delete	__P((tree **, int (*)(), tree_t, void (*)()));
62 int	tree_trav	__P((tree **, int (*)()));
63 void	tree_mung	__P((tree **, void (*)()));
64 
65 
66 #endif	/* _TREE_H_INCLUDED */
67