7 new_leaf(const char *s, void *extra)
10 leaf = (str_tree *) malloc(sizeof(str_tree));
20 leaf->left = leaf->right = NULL;
25 str_tree_add(str_tree **root, const char *s, void *extra)
28 return (*root = new_leaf(s, extra));
29 else if (strcmp(s, (*root)->s) < 0)
30 return str_tree_add(&(*root)->left, s, extra);
32 return str_tree_add(&(*root)->right, s, extra);
36 str_tree_find(str_tree *node, const char *s)
40 if (strcmp(s, node->s) == 0)
42 else if (strcmp(s, node->s) < 0)
43 return str_tree_find(node->left, s);
45 return str_tree_find(node->right, s);