CLISH  0.7.3
bintree.h
1 
88 /*---------------------------------------------------------------
89  HISTORY
90  7-Dec-2004 Graeme McKerrell
91  Updated to use the "lub" prefix
92 27-Feb-2004 Graeme McKerrell
93  updated to simplify node initialisation
94 9-Feb-2004 Graeme McKerrell
95  updated to make the comparision function compare a "clientnode" and
96  "key"
97  Updated getkey() function to fill out a provides "key" from a "clientnode"
98 23-Jan-2004 Graeme McKerrell
99  Initial version
100 --------------------------------------------------------------
101 Copyright (C) 2004 3Com Corporation. All Rights Reserved.
102 **************************************************************** */
103 #ifndef _lub_bintree_h
104 #define _lub_bintree_h
105 #include <stddef.h>
106 
107 /****************************************************************
108  * TYPE DEFINITIONS
109  **************************************************************** */
126 };
127 
140 typedef int
141  lub_bintree_compare_fn(const void *clientnode,
142  const void *clientkey);
148 #define lub_bintree_MAX_KEY_STORAGE (200)
149 
162 };
163 
174 typedef void
175  lub_bintree_getkey_fn(const void *clientnode,
176  lub_bintree_key_t *key);
177 
191 };
192 
204 };
205 
206 /****************************************************************
207  * BINTREE OPERATIONS
208  **************************************************************** */
216 extern void
221  lub_bintree_t *tree,
227  size_t node_offset,
232  lub_bintree_compare_fn compareFn,
236  lub_bintree_getkey_fn getkeyFn
237  );
238 
248 extern void
253  lub_bintree_node_t *node
254  );
255 
256 /*****************************************
257  * NODE MANIPULATION OPERATIONS
258  ***************************************** */
273 extern int
278  lub_bintree_t *tree,
283  void *clientnode
284  );
285 
297 extern void
302  lub_bintree_t *tree,
306  void *clientnode
307  );
308 
309 /*****************************************
310  * NODE RETRIEVAL OPERATIONS
311  ***************************************** */
320 extern void *
325  lub_bintree_t *tree
326  );
327 
336 extern void *
341  lub_bintree_t *tree
342  );
343 
353 extern void *
358  lub_bintree_t *tree,
362  const void *key
363  );
364 
376 extern void *
381  lub_bintree_t *tree,
385  const void *key
386  );
387 
399 extern void *
404  lub_bintree_t *tree,
408  const void *key
409  );
410 
411 /*****************************************
412  * ITERATION OPERATIONS
413  ***************************************** */
425 extern void
434  lub_bintree_t *tree,
438  const void *clientnode
439  );
440 
452 extern void *
458  );
459 
471 extern void *
477  );
485 extern void
490  lub_bintree_t *tree
491  );
492 
493 #endif /* _lub_bintree_h */
494 
lub_bintree_compare_fn * compareFn
Definition: bintree.h:189
Definition: bintree.h:185
char storage[(200)]
Definition: bintree.h:160
void * lub_bintree_find(lub_bintree_t *tree, const void *key)
lub_bintree_key_t key
Definition: bintree.h:203
#define lub_bintree_MAX_KEY_STORAGE
Definition: bintree.h:148
Definition: bintree.h:200
lub_bintree_node_t * root
Definition: bintree.h:187
void * lub_bintree_iterator_previous(lub_bintree_iterator_t *iter)
void * lub_bintree_findnext(lub_bintree_t *tree, const void *key)
int magic
Definition: bintree.h:161
void * lub_bintree_findfirst(lub_bintree_t *tree)
lub_bintree_getkey_fn * getkeyFn
Definition: bintree.h:190
void lub_bintree_dump(lub_bintree_t *tree)
Definition: bintree.h:158
void lub_bintree_iterator_init(lub_bintree_iterator_t *iter, lub_bintree_t *tree, const void *clientnode)
void lub_bintree_init(lub_bintree_t *tree, size_t node_offset, lub_bintree_compare_fn compareFn, lub_bintree_getkey_fn getkeyFn)
void * lub_bintree_findlast(lub_bintree_t *tree)
Definition: bintree.h:122
void * lub_bintree_iterator_next(lub_bintree_iterator_t *iter)
size_t node_offset
Definition: bintree.h:188
int lub_bintree_insert(lub_bintree_t *tree, void *clientnode)
void * lub_bintree_findprevious(lub_bintree_t *tree, const void *key)
lub_bintree_node_t * left
Definition: bintree.h:124
lub_bintree_t * tree
Definition: bintree.h:202
void lub_bintree_node_init(lub_bintree_node_t *node)
lub_bintree_node_t * right
Definition: bintree.h:125
void lub_bintree_getkey_fn(const void *clientnode, lub_bintree_key_t *key)
Definition: bintree.h:175
int lub_bintree_compare_fn(const void *clientnode, const void *clientkey)
Definition: bintree.h:141
void lub_bintree_remove(lub_bintree_t *tree, void *clientnode)