【发布时间】:2014-05-06 17:16:06
【问题描述】:
我正在尝试在 BST 中搜索一个数字,并且该功能始终打印“YES”(找到数字)
这是我在 main 中的代码
printf("Enter a number to search: ");
scanf("%d", &num);
if (search(root, num) != NULL) {
printf("YES\n");
}
else {
printf("NO\n");
}
这是我的搜索功能
BST* search(BST* root, int value) {
if( root == NULL) {
return NULL;
}
else if(value < root->value) {
root->left = search(root->left, value);
}
else if(value > root->value) {
root->right = search(root->right, value);
}
return root;
}
【问题讨论】:
-
你的输入是什么?结构是如何使用的?
-
你为什么要在搜索中重新分配东西?
-
迭代方法更高效,与递归方法一样简单。
标签: c search recursion binary-search-tree