59 lines
1.2 KiB
C
59 lines
1.2 KiB
C
|
/* tree.h - declare structures used by tree library
|
||
|
*
|
||
|
* vix 22jan93 [revisited; uses RCS, ANSI, POSIX; has bug fixes]
|
||
|
* vix 27jun86 [broken out of tree.c]
|
||
|
*
|
||
|
* $Id: tree.h,v 1.1 2004/05/04 16:08:52 phoudoin Exp $
|
||
|
*/
|
||
|
|
||
|
|
||
|
#ifndef _TREE_H_INCLUDED
|
||
|
#define _TREE_H_INCLUDED
|
||
|
|
||
|
|
||
|
#ifndef __P
|
||
|
# if defined(__STDC__) || defined(__GNUC__)
|
||
|
# define __P(x) x
|
||
|
# else
|
||
|
# define __P(x) ()
|
||
|
# endif
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* tree_t is our package-specific anonymous pointer.
|
||
|
*/
|
||
|
#if defined(__STDC__) || defined(__GNUC__)
|
||
|
typedef void *tree_t;
|
||
|
#else
|
||
|
typedef char *tree_t;
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* Do not taint namespace
|
||
|
*/
|
||
|
#define tree_add __tree_add
|
||
|
#define tree_delete __tree_delete
|
||
|
#define tree_init __tree_init
|
||
|
#define tree_mung __tree_mung
|
||
|
#define tree_srch __tree_srch
|
||
|
#define tree_trav __tree_trav
|
||
|
|
||
|
|
||
|
typedef struct tree_s {
|
||
|
tree_t data;
|
||
|
struct tree_s *left, *right;
|
||
|
short bal;
|
||
|
}
|
||
|
tree;
|
||
|
|
||
|
|
||
|
void tree_init __P((tree **));
|
||
|
tree_t tree_srch __P((tree **, int (*)(), tree_t));
|
||
|
tree_t tree_add __P((tree **, int (*)(), tree_t, void (*)()));
|
||
|
int tree_delete __P((tree **, int (*)(), tree_t, void (*)()));
|
||
|
int tree_trav __P((tree **, int (*)()));
|
||
|
void tree_mung __P((tree **, void (*)()));
|
||
|
|
||
|
|
||
|
#endif /* _TREE_H_INCLUDED */
|