好多不明白的小迷糊 2022-01-29 21:19 采纳率: 57.7%
浏览 14
已结题

我想建立一个二叉树再中序输出,为什么不行

#include"stdio.h"
typedef struct tree
{
    int date;
    struct tree *lchild;
    struct tree *rchild;
}tree;
void createtree(tree *t)
{
    int num;
    scanf("%d",&num);
    if(num==0)
    t=NULL;
    else
    {
        t=new tree;
        t->date=num;
        createtree(t->lchild);
        createtree(t->rchild);
    }
        
}
void midprintf(tree *t)
{
     if(t==NULL)
     ;
     else
     {  midprintf(t->lchild);
         printf("%d\t",t->date);
         midprintf(t->rchild );
         }    
}
int main()
{
   tree *t=NULL;
   printf("请输入整数\n");
   createtree(t);
   midprintf(t);
}

  • 写回答

1条回答 默认 最新

  • SmallAntJ 2022-01-29 21:54
    关注
    void createtree(tree *t);
    

    函数里面的t是形参,没有改变传入的指针值,所以一直是一个空树。可以改成

    tree* createtree(tree *t);
    

    把创建的结点指针返回

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

报告相同问题?

问题事件

  • 系统已结题 2月7日
  • 已采纳回答 1月30日
  • 创建了问题 1月29日

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)