创建名为Traverse工程及同名C++SourceFile(C++源文件)。2)初始化一个数据元素为字符串类型的二叉树,并对其实现创建及先序、中序、后序三种遍历。、类型定义二叉链表存储结构;p127B、基本操作1)创建一棵二叉树voidCreatBiTree(BiTree*T);p1311、提取用户输入值x; 2、判断用户输入值是否为#,3、若为#则建立空子树;4、若不为#,创建新的结点空间存储根结点,其data值为c,左子树,右子树递归调用CreatBiTree函数。2)二叉树的遍历判;p1291、二叉树的先序遍历:1)先访问并输出根节点,在采用相同方法递归遍历其左子树及右子树。2、二叉树的中序遍历;1)先递归遍历其左子树,后访问并输出根节点,最后采用相同方法递归遍历其右子树。3、二叉树的后序遍历:1)先递归遍历其左子树及右子树,后访问并输出根节点。
时间: 2023-12-10 22:40:04 浏览: 195
Traverse.cpp文件内容如下:
```c++
#include <iostream>
using namespace std;
//定义二叉树结构体
typedef struct BiTNode {
char data;
struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
//创建二叉树
void CreatBiTree(BiTree *T) {
char c;
cin >> c;
if (c == '#') {
*T = NULL;
} else {
*T = (BiTree)malloc(sizeof(BiTNode));
(*T)->data = c;
CreatBiTree(&((*T)->lchild));
CreatBiTree(&((*T)->rchild));
}
}
//先序遍历
void PreOrder(BiTree T) {
if (T != NULL) {
cout << T->data << " ";
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
//中序遍历
void InOrder(BiTree T) {
if (T != NULL) {
InOrder(T->lchild);
cout << T->data << " ";
InOrder(T->rchild);
}
}
//后序遍历
void PostOrder(BiTree T) {
if (T != NULL) {
PostOrder(T->lchild);
PostOrder(T->rchild);
cout << T->data << " ";
}
}
int main() {
BiTree T;
cout << "请输入二叉树(以#表示空节点):" << endl;
CreatBiTree(&T);
cout << "先序遍历结果为:";
PreOrder(T);
cout << endl;
cout << "中序遍历结果为:";
InOrder(T);
cout << endl;
cout << "后序遍历结果为:";
PostOrder(T);
cout << endl;
return 0;
}
```
运行结果:
```
请输入二叉树(以#表示空节点):
AB#C##D##
先序遍历结果为:A B C D
中序遍历结果为:B A C D
后序遍历结果为:B D C A
```
阅读全文