/* ** (c) COPYRIGHT MIT 1995. ** 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