求问关于采用二叉链表储存结构的二叉树整形数据域输入问题
题目如下:算法设计题:已知二叉树采用二叉链表储存结构,且数据域均为正整数,写一个算法求数据域的最大值。算法描述函数的函数原型要求是int FindMaxValue (BiTree BT)。
问题如下:
想知道数据域为整形的二叉树怎么输入才能正确创建成功啊?求解答。十分感谢
代码如下:
//已知二叉树采用二叉链表储存结构,且数据域均为正整数,写一个算法求数据域的最大值。算法描述函数的函数原型要求是int FindMaxValue (BiTree BT)。
#include<stdio.h>
#include<stdlib.h>
#define OK 1
typedef int TElemType;
typedef struct BiNode
{
TElemType data;
struct BiNode *lchild,*rchild;
}BiNode,*BiTree;
int CreateBiTree(BiTree &BT)
{
TElemType ch;
scanf("%d",&ch);
if(ch=='#')
BT=NULL;
else
{
if(!(BT=(BiTree)malloc(sizeof(BiNode))))
{
printf("未知错误!");
exit(0);
}
BT->data=ch;
CreateBiTree(BT->lchild);
CreateBiTree(BT->rchild);
}
return OK;
}
void PreOrder(BiTree BT)
{
if(BT!=NULL)
{
printf("%d",BT->data);
PreOrder(BT->lchild);
PreOrder(BT->rchild);
}
}
int FindMaxValue(BiTree BT)
{
if(BT==NULL)
return 0;
int lmax=FindMaxValue(BT->lchild);
int rmax=FindMaxValue(BT->rchild);
int max=((lmax>rmax)?lmax:rmax);
return ((max>BT->data)?max:BT->data);
}
int main()
{
BiTree BT;
CreateBiTree(BT);
PreOrder(BT);
printf("\n");
//printf("%d\n",FindMaxValue(BT));
return 0;
} 当一个父母结点的子结点全部为空(‘#’)结点时结束 最好加上这两句,好理解,便于你的输出
printf("请输入%d的左结点:",BT->data);
CreateBiTree(BT->lchild);
printf("请输入%d的右结点:",BT->data);
CreateBiTree(BT->rchild); 巴巴鲁 发表于 2020-11-25 19:27
当一个父母结点的子结点全部为空(‘#’)结点时结束
我的意思是对于整形数据如果要输入两个如13 14那么中间需要打个空格吗 1298150336 发表于 2020-11-30 15:35
我的意思是对于整形数据如果要输入两个如13 14那么中间需要打个空格吗
打回车
页:
[1]