### DESCRIPTION

The ` tdelete`, ` tfind`, ` tsearch`, and ` twalk` functions manage binary search trees based on algorithms T and D from Knuth (6.2.2). The comparison function passed in by the user has the same style of return values as **strcmp**(3). The ` tfind` function searches for the datum matched by the argument * key* in the binary tree rooted at * rootp*, returning a pointer to the datum if it is found and NULL if it is not.

The ` tsearch` function is identical to ` tfind` except that if no match is found, * key* is inserted into the tree and a pointer to it is returned. If * rootp* points to a NULL value a new binary search tree is created.

The ` tdelete` function deletes a node from the specified binary search tree and returns a pointer to the parent of the node to be deleted. It takes the same arguments as ` tfind` and ` tsearch`. If the node to be deleted is the root of the binary search tree, * rootp* will be adjusted.