各位大神们帮我看看我这个程序问题在哪里啊,程序运行的时候我的程序设计的是再输入#的时候结束scanf函数然后好进行遍历,可是气人的是,它总是停在creatbintree函数里面,就是没办法结束二叉树创建,求大神们给正解啊,满意再给分啊,先谢谢了啊
代码:
#in
各位大神们帮我看看我这个程序问题在哪里啊,程序运行的时候我的程序设计的是再输入#的时候结束scanf函数然后好进行遍历,可是气人的是,它总是停在creatbintree函数里面,就是没办法结束二叉树创建,求大神们给正解啊,满意再给分啊,先谢谢了啊
代码:
#include "stdio.h"
#include
#include
int i=0,j=0;
typedef struct BinTree
{
char data;
struct BinTree *lchild,*rchild;
} BinTree,*PBinTree;
CreateBinTree(PBinTree T)
{
char ch;
ch=getchar();
if(ch=='#') T=0,printf("c");
else
{ T=(BinTree*)malloc(sizeof(BinTree));
(*T).data=ch;
CreateBinTree((*T).lchild);
printf("%d %c",j ,ch);
CreateBinTree((*T).rchild);
printf("%");
}
return 1;
}
PreOrderTree(PBinTree T)
{
if(T) printf("%c%c",(*T).data,' ');
PreOrderTree((*T).lchild);
PreOrderTree((*T).rchild);
}
InOrderTree(PBinTree T)
{
if(T) printf("%c%c",(*(*T).lchild).data,' ');
InOrderTree(T);
InOrderTree((*T).rchild);
}
PostOrderTree(PBinTree T)
{
if(T) printf("%c%c",(*(*T).rchild).data,' ');
PostOrderTree(T);
PostOrderTree((*T).lchild);
}
void main()
{
BinTree cha;
PBinTree Pcha;
Pcha=&cha;
CreateBinTree(Pcha);
printf("前序遍历
");
PreOrderTree(Pcha);
printf("中序遍历
");
//InOrderTree(Pcha);
printf("后序遍历
");
//PostOrderTree(Pcha);
}
展开
全部