输入二叉树的先序遍历序列,以#代表空树,输出该二叉树的中序遍历序列。例如,有如下二叉树,其先序序列为:ABC##DE#G##F###,输出其中序序列:CBEGDFA void InOrder(BiTree Tree)//中序遍历 void creat(BiTree &Tree)//构建二叉树typedef struct BiTNode { char data; struct BiTNode *lchild; struct BiTNode *rchild; }BiTNode,*BiTree;用c语言实现
时间: 2024-02-16 10:03:23 浏览: 61
好的,下面是用C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode {
char data;
struct BiTNode *lchild;
struct BiTNode *rchild;
} BiTNode, *BiTree;
void creat(BiTree *Tree) {
char ch;
scanf("%c", &ch);
if (ch == '#') {
*Tree = NULL;
} else {
*Tree = (BiTree)malloc(sizeof(BiTNode));
(*Tree)->data = ch;
creat(&((*Tree)->lchild));
creat(&((*Tree)->rchild));
}
}
void InOrder(BiTree Tree) {
if (Tree) {
InOrder(Tree->lchild);
printf("%c", Tree->data);
InOrder(Tree->rchild);
}
}
int main() {
BiTree Tree;
creat(&Tree);
InOrder(Tree);
return 0;
}
```
输入先序遍历序列后,程序会自动构建二叉树,然后输出中序遍历序列。
阅读全文