this works too:
Code:
list_t *matches (bstree_t *index_tree, char *prefix)
{
int len, compare;
bstree_t *current_node, *sub_tree;
list_t *list;
list = make_empty_list ();
len = strlen (prefix);
current_node = index_tree;
while (current_node != NULL)
{
compare = strncmp (prefix, current_node->phrase, len);
if (compare == 0)
{
sub_tree = current_node;
list = insert_into_list (list, sub_tree, prefix);
return list;
}
else if (compare < 0)
current_node = current_node->left;
else
current_node = current_node->right;
}
return list;
}
i think it is my final solution.