1298150336 发表于 2020-11-25 01:31:29

求问关于采用二叉链表储存结构的二叉树整形数据域输入问题

题目如下:

算法设计题:已知二叉树采用二叉链表储存结构,且数据域均为正整数,写一个算法求数据域的最大值。算法描述函数的函数原型要求是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;
}

巴巴鲁 发表于 2020-11-25 19:27:15

当一个父母结点的子结点全部为空(‘#’)结点时结束

巴巴鲁 发表于 2020-11-25 19:29:13

最好加上这两句,好理解,便于你的输出
printf("请输入%d的左结点:",BT->data);
         CreateBiTree(BT->lchild);
         printf("请输入%d的右结点:",BT->data);
         CreateBiTree(BT->rchild);

1298150336 发表于 2020-11-30 15:35:52

巴巴鲁 发表于 2020-11-25 19:27
当一个父母结点的子结点全部为空(‘#’)结点时结束

我的意思是对于整形数据如果要输入两个如13 14那么中间需要打个空格吗

巴巴鲁 发表于 2020-11-30 20:22:22

1298150336 发表于 2020-11-30 15:35
我的意思是对于整形数据如果要输入两个如13 14那么中间需要打个空格吗

打回车
页: [1]
查看完整版本: 求问关于采用二叉链表储存结构的二叉树整形数据域输入问题