标题:请教各位大佬关于二叉树的问题
只看楼主
胡晓影
Rank: 2
等 级:论坛游民
帖 子:9
专家分:15
注 册:2020-4-14
 问题点数:0 回复次数:1 
请教各位大佬关于二叉树的问题
#include<stdio.h>
#include<stdlib.h>
 typedef struct Node//节点
 {
     char data;//数据域
     struct Node* lchild;
     struct Node* rchild;
  } *node;
void Create(node root)
{
    rewind(stdin);//清除缓冲区(清除\n对数据的读取)
  char ch ;
  scanf_s("%c",&ch);
  if (ch == '#')//控制树的结构
  {
    root = NULL;
  }
  else
  {
    root = (node )malloc(sizeof(node));  
   
    (root->data) = ch;
    Create(root->lchild);
    Create(root->rchild);
  }
   
}
 void     PreTraverse(node N)//先序遍历
 {
 
     if(N!=NULL)
     {
     printf("%c\t",N->data);
    PreTraverse(N->lchild);
    PreTraverse(N->rchild);
     }
   
  }
void     MidTraverse(node N)//中序遍历
 {
     if(N!=NULL)
     {
    MidTraverse(N->lchild);
     printf("%c",N->data);
    MidTraverse(N->rchild);   
     }
  }
void     PosTraverse(node N)//后序遍历
 {
     if(N!=NULL)
     {
    PosTraverse(N->lchild);
    PosTraverse(N->rchild);   
    printf("%c",N->data);   
     }
  }
 void main()
  {    node Root;
  int depth;
      printf("请按先序遍历的顺序输入各节点(#表示没有叶子节点,如:AB##C#D##)\n");
      Create(    Root);
      printf("先序遍历:\n");
    PreTraverse(Root);
    printf("中序遍历:\n");
    MidTraverse(Root);
    printf("后序遍历:\n");
    PosTraverse(Root);

   }
看不出哪错了,

[此贴子已经被作者于2021-6-12 18:44编辑过]

搜索更多相关主题的帖子: Node data printf void 遍历 
2021-06-12 18:42
王牌疯姐姐
Rank: 1
来 自:湖南
等 级:新手上路
威 望:2
帖 子:8
专家分:0
注 册:2021-7-17
得分:0 
把scanf的“-s”去掉

唱反调是我的本性,出其不意是我的个性。
2021-08-06 19:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506006-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.709621 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved