直接上代码
#include<stdio.h>
#include<malloc.h>
typedef char ElemType;
typedef struct BTree{
ElemType data;
struct BTree *lchild,*rchild;
}BTree;
BTree *CreateBTree()
{
char ch;
BTree *bt = NULL;
ch = getchar();
if(ch!='#'){
bt = (BTree*)malloc(sizeof(BTree));
bt->data = ch;
bt->lchild = CreateBTree();
bt->rchild = CreateBTree();
}
return bt;
}
BTree *CopyBTree(BTree *bt)
{
BTree *tmp = NULL;
if(bt){
tmp = (BTree*)malloc(sizeof(BTree));
tmp->data = bt->data;
tmp->lchild = CopyBTree(bt->lchild);
tmp->rchild = CopyBTree(bt->rchild);
}
return tmp;
}
void PrintBTree(BTree *bt)
{
if(bt){
printf("%2c",bt->data);
PrintBTree(bt->lchild);
PrintBTree(bt->rchild);
}
}
int main()
{
BTree *bt,*cbt;
bt = CreateBTree();
cbt = CopyBTree(bt);
PrintBTree(bt);
printf("\n");
PrintBTree(cbt);
return 0;
}