复制二叉树

来源:互联网 发布:新零售软件 编辑:程序博客网 时间:2024/05/19 12:38
#include<stdio.h>#include<stdlib.h>typedef struct BiTNode{char data; //数据域struct BiTNode *lchild, *rchild; //左、右孩子指针}BiTNode, *BiTree;void CreatBiTree(BiTree &bt){//构造二叉树char ch;ch=getchar();if(ch=='#')bt=NULL;else{bt=(BiTree)malloc(sizeof(BiTNode));bt->data=ch;CreatBiTree(bt->lchild);CreatBiTree(bt->rchild);} } BiTree Copy(BiTree bt){//复制二叉树  if (bt){  BiTree bt2=(BiTree)malloc(sizeof(BiTNode));  bt2->data=bt->data;  bt2->lchild=Copy(bt->lchild);  bt2->rchild=Copy(bt->rchild);  return bt2; } else  return NULL;} void visit(char data){printf("%3c",data);}void PreOrderTraverse(BiTree bt){//先序遍历if(bt){visit(bt->data);PreOrderTraverse(bt->lchild);PreOrderTraverse(bt->rchild);} } int main(){BiTree bt,bt2;printf("请输入数据构造一棵二叉树:\n");CreatBiTree(bt);PreOrderTraverse(bt);printf("\n复制一棵二叉树:\n");bt2=Copy(bt);PreOrderTraverse(bt2);return 0;}

原创粉丝点击