请教一下:二叉树的生成,程序调试通过了,要如何输入才有正确的显示效果?

unique2728 2008-11-06 10:04:48
#include "stdio.h"
#include "stdlib.h"

#define Max 50
typedef char elemtype;
typedef struct btnode{
elemtype data;
struct btnode *lchild;
struct btnode *rchild;
}bitnode,*bitree;

bitree CreateBiTree()
{
bitree t;
char ch;
scanf("%c",&ch);
if(ch=='')
t=NULL;
else
{
t=(bitnode *)malloc(sizeof(bitnode));
t->data=ch;
t->lchild=CreateBiTree();
t->rchild=CreateBiTree();
}
return t;
}

void PreOrder(bitree bt)
{
if(bt!=NULL){
printf("%c",bt->data);
PreOrder(bt->lchild);
PreOrder(bt->rchild);
}
}

void MidOrder(bitree bt)
{
if(bt!=NULL){
MidOrder(bt->lchild);
printf("%c",bt->data);
MidOrder(bt->rchild);
}
}

void PostOrder(bitree bt)
{
if(bt!=NULL){
PostOrder(bt->lchild);
PostOrder(bt->rchild);
printf("%c",bt->data);
}
}

main()
{
bitree bt1;
printf("创建二叉树:\n");
bt1=CreateBiTree();
printf("先序遍历二叉树递归算法:\n");
PreOrder(bt1);
printf("中序遍历二叉树递归算法:\n");
MidOrder(bt1);
printf("后序遍历二叉树递归算法:\n");
PostOrder(bt1);
}

程序调试没有错误提示,但是创建二叉树时一直要求输入,却没有生成树以及后面的遍历效果。请高手指点,谢谢!
...全文
353 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
unique2728 2008-11-06
  • 打赏
  • 举报
回复
pfgmylove,非常感谢!
pfgmylove 2008-11-06
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "stdlib.h"

#define Max 50
typedef char elemtype;
typedef struct btnode{
elemtype data;
struct btnode *lchild;
struct btnode *rchild;
}bitnode,*bitree;

bitree CreateBiTree()
{
bitree t;
char ch;
char a;//加上的
scanf("%c",&ch);
a=getchar();//这样才能识别输入完毕了
if(ch=='*') //我这里换成了*
t=NULL;
else
{
t=(bitnode *)malloc(sizeof(bitnode));
t->data=ch;
t->lchild=CreateBiTree();
t->rchild=CreateBiTree();
}
return t;
}

void PreOrder(bitree bt)
{
if(bt!=NULL){
printf("%c",bt->data);
PreOrder(bt->lchild);
PreOrder(bt->rchild);
}
}

void MidOrder(bitree bt)
{
if(bt!=NULL){
MidOrder(bt->lchild);
printf("%c",bt->data);
MidOrder(bt->rchild);
}
}

void PostOrder(bitree bt)
{
if(bt!=NULL){
PostOrder(bt->lchild);
PostOrder(bt->rchild);
printf("%c",bt->data);
}
}

main()
{
bitree bt1;
printf("创建二叉树:\n");
bt1=CreateBiTree();
printf("先序遍历二叉树递归算法:\n");
PreOrder(bt1);
printf("中序遍历二叉树递归算法:\n");
MidOrder(bt1);
printf("后序遍历二叉树递归算法:\n");
PostOrder(bt1);
}
输入为:
A
B
C
*
D
*
*
E
*
*
F
*
H
*
*


unique2728 2008-11-06
  • 打赏
  • 举报
回复
请明示,头都大了。。。。
code_xwk 2008-11-06
  • 打赏
  • 举报
回复
creat..函数的问题吧!!!

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧