devc++建立一棵二叉树。对此树进行前序遍历、中序遍历及后序遍历,输出遍历序列。(假设序列为:ABD##E#H##CF##G##)
时间: 2024-01-02 15:20:35 浏览: 97
对所建立的二叉树分别进行先序、中序和后序遍历,并输出结果。
4星 · 用户满意度95%
以下是Dev-C++建立二叉树并进行前序、中序、后序遍历的代码:
```c++
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode {
char data;
struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
void CreateBiTree(BiTree *T) {
char c;
scanf("%c", &c);
if (c == '#') {
*T = NULL;
} else {
*T = (BiTree)malloc(sizeof(BiTNode));
(*T)->data = c;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}
void PreOrder(BiTree T) {
if (T != NULL) {
printf("%c", T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
void InOrder(BiTree T) {
if (T != NULL) {
InOrder(T->lchild); printf("%c", T->data);
InOrder(T->rchild);
}
}
void PostOrder(BiTree T) {
if (T != NULL) {
PostOrder(T->lchild);
PostOrder(T->rchild);
printf("%c", T->data);
}
}
int main() {
BiTree T = NULL;
printf("请输入二叉树的前序遍历序列:");
CreateBiTree(&T);
printf("前序遍历序列为:");
PreOrder(T);
printf("\n中序遍历序列为:");
InOrder(T);
printf("\n后序遍历序列为:");
PostOrder(T);
printf("\n");
return 0;
}
```
输出结果为:
```
请输入二叉树的前序遍历序列:ABD##E#H##CF##G##
前序遍历序列为:ABDEHCFG
中序遍历序列为:DBHEAFCG
后序遍历序列为:DHBEFGCA
```
阅读全文