#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
typedef char TElemType;
typedef struct BiTNode {
TElemType data ;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void InitBiTree(BiTree *BT){
*BT=NULL;
}
int CeateBiTree(BiTree *T)
{
TElemType ch;
scanf("%c",&ch);
if (ch == '#'){
*T = NULL; //保证是叶结点
return 1 ;
}
else
{
*T = (BiTree)malloc(sizeof(BiTNode));
//if (!*T)
//exit(OVERFLOW); //内存分配失败则退出。
(*T)->data = ch;//生成结点
CeateBiTree(&(*T)->lchild);//构造左子树
CeateBiTree(&(*T)->rchild);//构造右子树
}
}
void revolute_BT(BiTree &BT){//交换二叉树
BiTree dis;
dis=BT->lchild;
BT->lchild=BT->rchild;
BT->rchild=dis;
if(BT->lchild)
revolute_BT(BT->lchild);
if(BT->rchild)
revolute_BT(BT->rchild);
}
void PreOrder(BiTree BT) {
if(BT){
if(!(BT->data));
printf("%c",BT->data);
PreOrder(BT->lchild) ;
PreOrder(BT->rchild);
}
}
int main(){
BiTree BT;
InitBiTree(&BT);
CeateBiTree(&BT);
PreOrder(BT);
revolute_BT(BT);
PreOrder(BT);
}