#include<iostream>
using namespace std;
/*
测试使用二叉树使用先序遍历输入字符串为ABC##DE#G##F###
*/
typedef char ElemType;
typedef struct BiTNode {
ElemType data;
struct BiTNode *lchild;
struct BiTNode *rchild;
} BiTNode, *BiTree;
void CreateTree(BiTree &T) { //先序创建二叉树
char c;
cin>>c;
if(c == '#') {
T = NULL;
} else {
T = new BiTNode;//此处只能声明结点类型,对应指针
T->data = c;
CreateTree(T->lchild);
CreateTree(T->rchild);
}
}
void Pre(BiTree T) {//前序遍历
if(T == NULL) return;
else {
cout<<T->data;
Pre(T->lchild);
Pre(T->rchild);
}
}
void Middle(BiTree T) { //中序遍历
if(T) return;
else {
Pre(T->lchild);
cout<<T->data;
Pre(T->rchild);
}
}
void Post(BiTree T) { //后序遍历
if(T) return;
else {
Pre(T->lchild);
Pre(T->rchild);
cout<<T->data;
}
}
int NodeCount(BiTree T) {//节点个数
if(T == NULL) return 0;
else {
return 1 + NodeCoun
二叉树常用基本操作
最新推荐文章于 2022-08-05 13:28:13 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)