输入时不能带有空格,不知道为什么。。
#include<malloc.h>
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define OVERFLOW -2
typedef int Status;
typedef struct BiTNode
{
char data;// 结点的值
struct BiTNode *lchild,*rchild;// 左右孩子指针
}BiTNode,*BiTree;
Status visit(char e)
{
printf("%c ",e);// 以字符型格式输出
return OK;
}
Status InitBiTree(BiTree &T)
{// 操作结果:构造空二叉树T
T=NULL;
return OK;
}
Status CreatBiTree(BiTree &T)
{// 按先序次序输入二叉树中结点的值,
// 构造二叉链表表示的二叉树T。变量Nil表示空(子)树。
char ch;
scanf("%c",&ch); // 输入结点的值
//不要有空格!!
if(ch=='*') // 结点的值为空
{
T=NULL;
}
else// 结点的值不为空
{
T=(BiTree)malloc(sizeof(BiTNode));
if(!T) exit(OVERFLOW);
T->data=ch; // 将值赋给T所指结点
CreatBiTree(T->lchild);// 递归构造左子树
Cre