#include<stdio.h>
#include<stack>
#define MAXSIZE 100
using namespace std;
int count1=0;
int count2=0;
typedef struct BiNode{
char data;//数据域
struct BiNode *lchild, *rchild;//左右子树指针
}BiTNode, *BiTree;
//先序遍历创建二叉链,输入:ABC##DE#G##F### (#表示树为空)
void CreateBTree(BiTree &T){
char ch;
scanf("%c", &ch);
if(ch=='#'){
T=NULL;
}else{
T=new BiNode;
T->data=ch;
CreateBTree(T->lchild);
CreateBTree(T->rchild);
}
}
//先序遍历二叉树的递归方法
void TraveBiTreeFirstRoot(BiTree &T) {
if(T){
printf("%c", T->data);
TraveBiTreeFirstRoot(T->lchild);
TraveBiTreeFirstRoot(T->rchild);
}
}
/*复制二叉树
申请一个新的结点,复制根结点;
递归复制左子树;
递归复制右子树。
*/
void CopyBiTree(BiTree &T, BiTree &NewT){
if(T==NULL){
NewT=NULL;
return;
}
NewT=new BiNode;
NewT->data=T->data;
CopyBiTree(T->lchild, NewT->lchild);
CopyBiTree(T->rchild, Ne
使用二叉链表实现二叉树的基本操作
最新推荐文章于 2021-11-11 23:34:15 发布