C二叉树搜索
C binary tree search
我正在尝试在二叉树中查找节点,但是函数 return 什么都没有,NULL!
顺便说一句,在printf中,在
if ((cond = strcmp(head->word, word_to_search)) == 0)
结果是对的,只是没有return值,可能我递归弄错了,我不知道。顺便说一句,如果我将 last return NULL 包装在 else 中,它会 return 有效指针,但它会导致警告...
struct count_tree *
binaryt_search(struct count_tree *head, char *word_to_search)
{
int cond = 0;
if (head != NULL) {
if ((cond = strcmp(head->word, word_to_search)) == 0) {
printf("Found %s %d\n", head->word, head->count);
return head;
}
else if (cond < 0) {
binaryt_search(head->left, word_to_search);
}
else {
binaryt_search(head->right, word_to_search);
}
}
return NULL;
}
您需要 return
调用 binaryt_search()
的结果。
所以,
binaryt_search(head->left, word_to_search);
变成
return binaryt_search(head->left, word_to_search);
和
binaryt_search(head->right, word_to_search);
变成
return binaryt_search(head->right, word_to_search);
我正在尝试在二叉树中查找节点,但是函数 return 什么都没有,NULL! 顺便说一句,在printf中,在
if ((cond = strcmp(head->word, word_to_search)) == 0)
结果是对的,只是没有return值,可能我递归弄错了,我不知道。顺便说一句,如果我将 last return NULL 包装在 else 中,它会 return 有效指针,但它会导致警告...
struct count_tree *
binaryt_search(struct count_tree *head, char *word_to_search)
{
int cond = 0;
if (head != NULL) {
if ((cond = strcmp(head->word, word_to_search)) == 0) {
printf("Found %s %d\n", head->word, head->count);
return head;
}
else if (cond < 0) {
binaryt_search(head->left, word_to_search);
}
else {
binaryt_search(head->right, word_to_search);
}
}
return NULL;
}
您需要 return
调用 binaryt_search()
的结果。
所以,
binaryt_search(head->left, word_to_search);
变成
return binaryt_search(head->left, word_to_search);
和
binaryt_search(head->right, word_to_search);
变成
return binaryt_search(head->right, word_to_search);