gpt4 book ai didi

c - 打印堆的所有叶子

转载 作者:行者123 更新时间:2023-11-30 19:49:01 25 4
gpt4 key购买 nike

我需要打印出堆的所有叶子,但我不确定我是否做得正确。

例如:数组 {A,B,C,D,E,F,G,H,I,J}

                  A
B C
D E F G
H I J

所以我的函数应该打印:H I J F G

这是正确的吗?

void leafdisplay(node *p)
{
if(p->left ==NULL && p->right ==NULL)
{
cout<<p->info; // display the node
}
else if (p->left==NULL&&p->right!=NULL)
leafdisplay(p->right);
else if(p->left!=NULL&&p->right==NULL)
leafdisplay(p->left);
else if(p->left!=NULL&&p->right!=NULL)
leafdisplay(p->left);
leafdisplay(p->right);
}

最佳答案

最后一个 else if 循环缺少 { }

else if(p->left!=NULL&&p->right!=NULL)
{
leafdisplay(p->left);
leafdisplay(p->right);
}

你可以像这样优化你的代码

void leafdisplay(node *p)
{
if(p->left ==NULL && p->right ==NULL)
{
cout<<p->info; // display the node
}
else if (p->left==NULL)
leafdisplay(p->right);
else if(p->right==NULL)
leafdisplay(p->left);
else
{
leafdisplay(p->left);
leafdisplay(p->right);
}
}

关于c - 打印堆的所有叶子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962855/

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