以字符串的形式定义一棵二叉树的先序序列,若字符是‘#’, 表示该二叉树是空树,否则该字符是相应结点的数据元素。读入相应先序序列,建立二叉链式存储结构的二叉树,然后中序遍历该二叉树并输出结点数据。
#include<stdio.h>
#include<stdlib.h>
typedef struct BiTNode
{
char data;
struct BiTNode *left, *right;
}BiTNode, *BiTree;
void CreatBiTree(BiTree *T) //创建二叉树
{
char a;
scanf("%c",&a);
if(a=='#') *T=NULL;
else
{
*T=(BiTree)malloc(sizeof(BiTNode));
(*T)->data=a;
CreatBiTree(&(*T)->left);
CreatBiTree(&(*T)->right);
}
}
void show(BiTree T) //递归中序遍历二叉树
{
if(T)
{
show(T->left);
printf("%c",T->data);
show(T->right);
}
}
int main()
{
BiTree T;
CreatBiTree(&T);
show(T);
return 0;
}