利用二叉链表建立一棵二叉树,分别采用先序、中序和后序遍历该二叉树,并输出遍历的序列。
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
typedef struct BiTNode{ //定义二叉树
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree *T){
char data;
//按先序次序输入二叉树中结点的值(一个字符),‘#’表示空树
scanf("%c",&data);
if(data == '#'){
*T = NULL;
}
else{
*T = (BiTree)malloc(sizeof(BiTNode));
//生成根结点
(*T)->data = data;
//构造左子树
CreateBiTree(&(*T)->lchild);
//构造右子树
CreateBiTree(&(*T)->rchild);
}
}
void Visit(BiTree T){ //输出
if(T->data != '#'){
printf("%c ",T->data);
}
}
void PreOrder(BiTree T){