tree.h revision 1.1.1.1 1 /* $NetBSD: tree.h,v 1.1.1.1 2009/04/12 15:33:33 christos 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