Free Web Hosting by Netfirms
Web Hosting by Netfirms | Free Domain Names by Netfirms

Home Page    

 

/* Binary tree implementation of a collection */

static void AddToTree( Node *t, Node new ) {
	Node base;
	base = *t;
	/* If it's a null tree, just add it here */
	if ( base == NULL ) {
		*t = new;
		return;
		}
	else {
		if ( KeyLess( ItemKey( new->item ), ItemKey( base->item ) ) )
			{
			AddToTree( &(base->left), new );
			}
		else
			AddToTree( &(base->right), new );
		}
	}

void AddToCollection( Collection c, void *item ) {
	Node new, node_p;
	assert( c != NULL );
	assert( item != NULL );
	/* Allocate space for a node for the new item */
	new = (Node)malloc(sizeof(struct t_node));
	/* Attach the item to the node */
	new->item = item;
	new->left = new->right = (Node)0;
	AddToTree( &(c->node), new );
	}
 

Back