下边是完整的代码,我的疑问是在建树完毕后如何结束输入,比如我先序建立的二叉树就三个结点,a,b,c;a是头结点,b是左孩子, c是右孩子,我输完a,b,c之后不想再往黑框里输了,我现在想先序遍历它,可是黑框里的光标还在闪烁,使得我不得不继续往下输入,什么时候是个头啊
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}
BiTNode,*BiTree;
BiTree CreateBiTree()//在BiTree CreateBiTree()
{
char p;BiTree T;
scanf("%c",&p);
if(p==' ')
T=NULL;
else
{
T=(BiTNode *)malloc(sizeof(BiTNode));
T->data=p;
T->lchild=CreateBiTree();
T->rchild=CreateBiTree();
}
return (T);
}
void PreOrder(BiTree T)
{
if(T!=NULL)
{
printf("%c",T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
void InOrder(BiTree T)
{
if(T!=NULL)
{
InOrder(T->lchild);
printf("%c",T->data);
InOrder(T->rchild);
}
}
void PostOrder(BiTree T)
{
if(T!=NULL)
{
PostOrder(T->lchild);
PostOrder(T->rchild);
printf("%c",T->data);
}
}
void main()
{
BiTree Ta;
Ta=CreateBiTree();
printf("先序遍历:");
printf("\n");
PreOrder(Ta);
printf("\n");
printf("中序遍历:");
printf("\n");
InOrder(Ta);
printf("\n");
printf("后序遍历:");
printf("\n");
PostOrder(Ta);
}
谁能教给我该怎么往黑框里边输入元素才能结束?谢谢了!!!
不行。。。
追答额 你要 输入很多的空格,每个叶子节点要两次 空格输入,明白了吗
从你的程序上看来时这样的
if(p==' ')
T=NULL;
......
return (T);
}
这就是你的程序里的结束条件了