#include #include "o.h" NODE_T *new_tree( void *data_ptr, int dup_allowed ) { NODE_T *tree; tree = (NODE_T *)o_malloc(sizeof(NODE_T)); tree->data = data_ptr; if ( dup_allowed ) { /* Hide the duplicates allowed indicator */ tree->balance = LEFT; /* in the tree root's balance! */ } else { tree->balance = RIGHT; } tree->ptr [LEFT ] = 0; /* Hide the tree depth in left pointer */ tree->ptr [RIGHT] = (NODE_T *)tree; tree->thread[LEFT ] = TRUE; tree->thread[RIGHT] = TRUE; return( tree ); }