大大怪的一亩三分地 2021-11-22 23:50 采纳率: 100%
浏览 38
已结题

#创建二叉树,并先序遍历# 代码没有出错,但是输入:ab##cd##,没有显示结果出来

#创建二叉树,并先序遍历# 代码没有出错,但是输入:ab##cd##,没有显示结果出来 (*꒦ິ⌓꒦ີ)求大佬帮忙看一下
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct node {
char data; //存放数据域
struct node *lchild,*rchild;//创建两个结构体指针变量 ,也就是定义了两个指向该结构体的指针 。遍历左子树指针,遍历右子树指针
}bnode;
typedef struct node blink;//创建新的标签,用blink来代替struct node
void xian(blink bt)
{
if(bt)
{
printf("%c",bt->data);
xian(bt->lchild);
xian(bt->rchild);
}
}
blink create(blink bt)
{
char ch;
scanf("%c",&ch);
getchar();
if(ch=='#')
bt=NULL;
else
{
bt=(blink)malloc(sizeof(bnode));
if(!bt)
exit(-1);
bt->data=ch;
bt->lchild=create(bt->lchild);
bt->rchild=create(bt->rchild);
}
return bt;
}
int main()
{
blink bt=NULL;
create(bt);
xian(bt);
return 0;
}

  • 写回答

1条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    #include <stdio.h>
    #include <conio.h>
    #include <malloc.h>
    #include <stdlib.h>
    typedef struct node
    {
        char data;                    //存放数据域
        struct node *lchild, *rchild; //创建两个结构体指针变量 ,也就是定义了两个指向该结构体的指针 。遍历左子树指针,遍历右子树指针
    } bnode;
    typedef struct node blink; //创建新的标签,用blink来代替struct node
    void xian(blink *bt)
    {
        if (bt)
        {
            printf("%c", bt->data);
            xian(bt->lchild);
            xian(bt->rchild);
        }
    }
    blink* create()
    {
        blink *bt;
        char ch;
        scanf("%c", &ch);
        getchar();
        if (ch == '#')
            bt = NULL;
        else
        {
            bt = (blink *)malloc(sizeof(bnode));
            if (!bt)
                exit(-1);
            bt->data = ch;
            bt->lchild = create();
            bt->rchild = create();
        }
        return bt;
    }
    int main()
    {
        blink *bt = NULL;
        bt = create();
        xian(bt);
        return 0;
    }
    

    如有帮助,望采纳!谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 已采纳回答 11月23日
  • 创建了问题 11月22日

悬赏问题

  • ¥15 一道python难题2
  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备