#include"stdio.h"
#include"stdlib.h"
typedef char DataType;
typedef struct Node
{
DataType data;
struct Node *leftChild;
struct Node *rightChild;
}BiTreeNode;
void PrintData(DataType x)
{
printf("%c",x);
}
void CreatBiTree(BiTreeNode **T)
{
char ch;
scanf("%c",&ch);
if(ch==' ') {*T=NULL;return;}
else
{
if(!(*T=(BiTreeNode*)malloc(sizeof(BiTreeNode)))){printf("Overflow.\n");exit(0);}
(*T)->data =ch;
CreatBiTree(&((*T)->leftChild ));
CreatBiTree(&((*T)->rightChild ));
}
}
void PreOrder(BiTreeNode *t, void (*Visit)(DataType item))
{
if(t != NULL)
{
Visit(t->data);
PreOrder(t->leftChild, Visit);
PreOrder(t->rightChild, Visit);
}
}
void exchange(BiTreeNode *bt)
{ BiTreeNode *p;
if(bt){
p=bt->leftChild; bt->leftChild=bt->rightChild; bt->rightChild=p;
exchange(bt->leftChild);
exchange(bt->rightChild);
}
}
int main()
{
BiTreeNode *T;
CreatBiTree(&T);
PreOrder(T,PrintData);printf("\n");
exchange(T);
PreOrder(T,PrintData);printf("\n");
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/2be3cdc1b9824115afa4bd398764e2d4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA54OI54Sw5pif6L6w,size_20,color_FFFFFF,t_70,g_se,x_16)
这里是引用