Linked Data Structures

struct treenode *tree_insert(struct treenode *tp, char *item)
{
	struct treenode *ret;

	if(tp == NULL)
		{
		ret = safemalloc(sizeof(struct treenode));
		ret->item = copystring(item);
		ret->left = ret->right = NULL;
		return ret;
		}

	if(strcmp(item, tp->item) < 0)
		tp->left = tree_insert(tp->left, item);
	else	tp->right = tree_insert(tp->right, item);

	return tp;
}