输入中序和后序求先序c语言
时间: 2023-12-25 13:23:49 浏览: 95
二叉树已知中序后序求先序
5星 · 资源好评率100%
以下是输入中序和后序求先序的 C 语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100
typedef struct TreeNode {
char data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode, *BinaryTree;
// 根据中序和后序遍历序列创建二叉树
BinaryTree createTree(char *inorder, char *postorder, int len) {
if (len <= 0) {
return NULL;
}
BinaryTree root = (BinaryTree)malloc(sizeof(TreeNode));
root->data = *(postorder + len - 1);
int index = 0;
while (index < len && *(inorder + index) != root->data) {
index++;
}
root->left = createTree(inorder, postorder, index);
root->right = createTree(inorder + index + 1, postorder + index, len - index - 1);
return root;
}
// 先序遍历二叉树
void preOrder(BinaryTree root) {
if (root == NULL) {
return;
}
printf("%c ", root->data);
preOrder(root->left);
preOrder(root->right);
}
int main() {
char inorder[MAX_SIZE];
char postorder[MAX_SIZE];
printf("请输入中序遍历序列:");
scanf("%s", inorder);
printf("请输入后序遍历序列:");
scanf("%s", postorder);
int len = strlen(inorder);
BinaryTree root = createTree(inorder, postorder, len);
printf("得到的先序遍历序列为:");
preOrder(root);
printf("\n");
return 0;
}
```
输入中序和后序遍历序列,程序会自动构建出对应的二叉树,并输出先序遍历序列。
阅读全文