Home | History | Annotate | Line # | Download | only in isc
tree.h revision 1.1.1.1.6.2
      1 /*	$NetBSD: tree.h,v 1.1.1.1.6.2 2011/01/09 20:42:52 riz Exp $	*/
      2 
      3 /* tree.h - declare structures used by tree library
      4  *
      5  * vix 22jan93 [revisited; uses RCS, ANSI, POSIX; has bug fixes]
      6  * vix 27jun86 [broken out of tree.c]
      7  *
      8  * Id: tree.h,v 1.3 2005/04/27 04:56:18 sra Exp
      9  */
     10 
     11 
     12 #ifndef	_TREE_H_INCLUDED
     13 #define	_TREE_H_INCLUDED
     14 
     15 
     16 #ifndef __P
     17 # if defined(__STDC__) || defined(__GNUC__)
     18 #  define __P(x) x
     19 # else
     20 #  define __P(x) ()
     21 # endif
     22 #endif
     23 
     24 /*%
     25  * tree_t is our package-specific anonymous pointer.
     26  */
     27 #if defined(__STDC__) || defined(__GNUC__)
     28 typedef	void *tree_t;
     29 #else
     30 typedef	char *tree_t;
     31 #endif
     32 
     33 /*%
     34  * Do not taint namespace
     35  */
     36 #define	tree_add	__tree_add
     37 #define	tree_delete	__tree_delete
     38 #define	tree_init	__tree_init
     39 #define	tree_mung	__tree_mung
     40 #define	tree_srch	__tree_srch
     41 #define	tree_trav	__tree_trav
     42 
     43 
     44 typedef	struct tree_s {
     45 		tree_t		data;
     46 		struct tree_s	*left, *right;
     47 		short		bal;
     48 	}
     49 	tree;
     50 
     51 
     52 void	tree_init	__P((tree **));
     53 tree_t	tree_srch	__P((tree **, int (*)(), tree_t));
     54 tree_t	tree_add	__P((tree **, int (*)(), tree_t, void (*)()));
     55 int	tree_delete	__P((tree **, int (*)(), tree_t, void (*)()));
     56 int	tree_trav	__P((tree **, int (*)()));
     57 void	tree_mung	__P((tree **, void (*)()));
     58 
     59 
     60 #endif	/* _TREE_H_INCLUDED */
     61 /*! \file */
     62