/* ** (c) COPYRIGHT CERN 1994. ** Please first read the full copyright statement in the file COPYRIGH. */Tree creation, traversal and freeing. User-supplied comparison routine.
This module is implemented by HTBTree.c, and it is a part of the Library of Common Code.
#ifndef HTBTTEE_H #define HTBTREE_H
typedef struct _HTBTree_element {
void *object; /* User object */
struct _HTBTree_element *up;
struct _HTBTree_element *left;
int left_depth;
struct _HTBTree_element *right;
int right_depth;
} HTBTElement;
typedef int (*HTComparer) PARAMS((void * a, void * b));
typedef struct _HTBTree_top {
HTComparer compare;
struct _HTBTree_element *top;
} HTBTree;
extern HTBTree * HTBTree_new PARAMS((HTComparer comp));
extern void HTBTree_free PARAMS((HTBTree* tree));
extern void HTBTreeAndObject_free PARAMS((HTBTree* tree));
extern void HTBTree_add PARAMS((HTBTree* tree, void * object));
#define HTBTree_object(element) ((element)->object)
extern HTBTElement * HTBTree_next PARAMS((HTBTree* tree, HTBTElement * ele)); #endifend