求二叉树宽度
无法递归
void Treelevelmax(bitree T,LQueue qa, int &sum)//求二叉树宽度
{
LQueue z;
InitQueue(z);
bitree p;
int temp=0;
while (!QueueEmpty(qa)){
DeQueue(qa,p);
if(p->left!=NULL)EnQueue(z,p->left);temp++;
if(p->right!=NULL)EnQueue(z,p->right);temp++;
}
while(!QueueEmpty(z)){
DeQueue(z,p);
char a=p->data;
printf("%c",a);}
sum=sum>=temp?sum:temp;
if(!QueueEmpty(z)){
qa=z;
Treelevelmax(T,qa,sum);}
else return ;
}
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
采用双对列方法,qa和z ,qa取根节点,z取根节点的左右节点并累计求和。以此类推,求出每一层的节点和,并比较大小,取最大值
我的解答思路和尝试过的方法
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
