C语言编写编写一个程序exp2-2.cpp,实现二叉树的先序、中序和后序遍历的递归算法,并对图1所示的二叉树b给出求解结果。
时间: 2024-06-13 19:05:12 浏览: 131
各种二叉树的数据结构.rar_二叉树_二叉树 遍历_实现二叉树的先、中、后序递归遍历算_数据结构_数据结构 算法
exp2-2.cpp程序如下:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode {
char data;
struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
void CreateBiTree(BiTree *T) {
char ch;
scanf("%c", &ch);
if (ch == '#') {
*T = NULL;
} else {
*T = (BiTree)malloc(sizeof(BiTNode));
(*T)->data = ch;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}
void PreOrderTraverse(BiTree T) {
if (T) {
printf("%c ", T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
}
void InOrderTraverse(BiTree T) {
if (T) {
InOrderTraverse(T->lchild);
printf("%c ", T->data);
InOrderTraverse(T->rchild);
}
}
void PostOrderTraverse(BiTree T) {
if (T) {
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
printf("%c ", T->data);
}
}
int main() {
BiTree T;
printf("请输入二叉树的先序遍历序列:\n");
CreateBiTree(&T);
printf("先序遍历结果为:");
PreOrderTraverse(T);
printf("\n中序遍历结果为:");
InOrderTraverse(T);
printf("\n后序遍历结果为:");
PostOrderTraverse(T);
printf("\n");
return 0;
}
```
对于图1所示的二叉树b,其先序遍历结果为:ABDECF,中序遍历结果为:DBEAFC,后序遍历结果为:DEBFCA。
阅读全文