如何用非递归法求二叉树中最大的元素?

嘿嘿 谢谢 最好是完整的程序 我对于这个比较混沌··
2025-03-06 02:59:51
推荐回答(1个)
回答1:

#include //头文件
#include
#include
typedef struct BiTNode
{
int data;
struct BiTNode *lchild,*rchild;
}
BiTNode,*BiTree;//定义结点类型
int max=-100;//把max定义得足够小
BiTree CreateBiTree()//先序递归创建树
{
int p;BiTree T;
scanf("%d",&p);//注意每输入两个值的时候用空格各隔开
if(p==0)
T=NULL;
else
{
T=(BiTNode *)malloc(sizeof(BiTNode));//为结点开辟空间
T->data=p;
T->lchild=CreateBiTree();
T->rchild=CreateBiTree();
}
return (T);
}
int Max(BiTree T)//求最大(递归算法)
{
if(T==NULL)
return 0;
if(T!=NULL)
{
if(T->data>max)
max=T->data;
Max(T->lchild);
Max(T->rchild);

}
return max;
}
void main()//主函数
{
BiTree Ta;
Ta=CreateBiTree();
printf("最大值是:\n");
printf("%d",Max(Ta));
}
给你吧,已经很久没回答题目了