gpt4 book ai didi

c - c中的二叉树 'smart'搜索函数

转载 作者:行者123 更新时间:2023-11-30 15:39:31 25 4
gpt4 key购买 nike

我需要一个“智能”搜索函数,它将返回二叉树中大于给定参数的元素数量,但不会遍历所有节点。

例如,如果我想查找大于 16 的元素数量,它不会在 15 的左节点中查找它们,依此类推。

                    20
/ \
15 21
/ \ \
5 17 28
/ \ / \
1 8 24 30
/ \
23 26

我做了一个遍历所有节点的函数,它看起来像这样:

void search(node* p, int k, int* num)
{
if(p)
{
search(p->left, k, num);
if(p->info > k)
(*num)++;
search(p->right,k, num);
}
}

最佳答案

简单,真的。

如果当前节点 <= k,则不要向左走,因为左子树中没有任何内容 > k。不过,你仍然必须向右走。

if (p->info > k) {
(*num)++;
search(p->left, k, num);
}
search(p->right, k, num);

关于c - c中的二叉树 'smart'搜索函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21409813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com