二叉树遍历调试时候的运行问题,请高手帮忙解决下 20

#include<stdio.h>#include<malloc.h>#defineNULL0typedefstructBTnode{structBTnode*rchil... #include<stdio.h>
#include<malloc.h>
#define NULL 0
typedef struct BTnode
{
struct BTnode *rchild;
struct BTnode *lchild;
char data;
}BTnode;

void creat(BTnode *b) //用递归的方法建立一个二叉树,先序遍历,用输入字符串的方式建立,当输入空格的时候为空树
{
char ch;
ch=getchar();
getchar();
if(ch==' ')b=NULL;
else
{b=(BTnode *)malloc(sizeof(BTnode));
b->data=ch;
creatmi(b->lchild);
creatmi(b->rchild);}
}

void find(BTnode *b) //用中序遍历输出二叉树
{
BTnode *s[100],*p;
int top=-1;
if(b!=NULL)
{ p=b;
while(top>-1||p!=NULL)
{
while(p!=NULL)
{ top++;
s[top]=p;
p=p->lchild;
}
if(top>-1)
{ p=s[top];
top--;
printf("%c ",p->data);
p=p->rchild;
}
}
}
}

void main()
{
BTnode *b;
b=NULL;
creat(b);
find(b);
}

比如输入a空格空格,没有输出结果 实际上要中序输出序列 请高手帮忙看下 十分感谢
敲一个字符按下回车键 不是整个输入字符串
展开
 我来答
卡拉ok台北
2011-05-07 · TA获得超过171个赞
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
void creat(BTnode *b) //用举颤递归的方法建立一个二叉树,先序遍历,用输入字符串的方式建立,当输入空格的时候为空树正前败
{
char ch;
ch=getchar();
getchar();
if(ch==' ')b=NULL;
else
{b=(BTnode *)malloc(sizeof(BTnode));
b->data=ch;
creatmi(b->lchild);/*creatmi改为creat试试?因为前面没有creatmi函数,这样写不行啊悔游*/
creatmi(b->rchild);}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
公冶雅亦
2011-05-06 · TA获得超过926个赞
知道小有建树答主
回答量:844
采纳率:0%
帮助的人:503万
展开全部
Private Sub preorder(a As sbnode)
Dim a1 As sbnode, a2 As sbnode ’改乱袭型成 这样就可以了
If a.lcd = 0 And a.rcd = 0 Then
Print a.Data;
Else
If a.lcd <禅唯>哗猜 0 Or a.rcd <> 0 Then
a1 = a.lcd
a2 = a.rcd
Print a.Data
Call preorder(tree(a1))
Call preorder(tree(a2))
End If
End If
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式