gpt4 book ai didi

C++:二叉树的奇数和

转载 作者:行者123 更新时间:2023-11-28 04:38:09 25 4
gpt4 key购买 nike

尝试编写一个程序,对二叉树的所有奇数元素求和。但是我的代码(函数 odd_sum)只返回第一个奇数元素。我的错误在哪里?

/*Creating abd printing tree*/
int odd_sum(node *root)
{ if (root == NULL) return 0;
return root->info % 2 != 0 ? root->info:0 + odd_sum(root->left) +
odd_sum(root->right);
}

int main()
{
int k,sum,h=0;
node *der=tree();
if (!der) printf ("No tree");
else
{
node *root=der,*qwe=der;
sum=odd_sum(root);
print_tree(der,h);
printf ("\nOdd sum :%d\n\n\n",sum);}

return 0;
}

最佳答案

如果您在树中遇到一个 奇数 值,您只是返回它的值而不向下分支树,这就是为什么您只得到第一个奇数的原因。

您的代码的更正版本位于:

int odd_sum(node *root){ 
if (root == NULL) {
return 0;
}
else {
int add = 0;
if(root->info % 2 != 0) add = root->info;
return add + odd_sum(root->left) + odd_sum(root->right);
}
}

关于C++:二叉树的奇数和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50825557/

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