已知二叉树中序后序去推前序c语言
时间: 2023-10-26 22:16:14 浏览: 110
下面是一个递归实现的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
char data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
// 根据中序序列和后序序列构建二叉树
TreeNode* buildTree(char* inorder, char* postorder, int length) {
if (length <= 0) {
return NULL;
}
TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode));
root->data = postorder[length - 1];
int i;
for (i = 0; i < length; i++) {
if (inorder[i] == root->data) {
break;
}
}
root->left = buildTree(inorder, postorder, i);
root->right = buildTree(inorder + i + 1, postorder + i, length - i - 1);
return root;
}
// 前序遍历二叉树
void preorderTraversal(TreeNode* root) {
if (root == NULL) {
return;
}
printf("%c ", root->data);
preorderTraversal(root->left);
preorderTraversal(root->right);
}
int main() {
char inorder[] = "DBEAFC";
char postorder[] = "DEBFCA";
int length = sizeof(inorder) / sizeof(char);
TreeNode* root = buildTree(inorder, postorder, length);
printf("前序遍历结果为:");
preorderTraversal(root);
printf("\n");
return 0;
}
```
这里假设输入的中序序列和后序序列中不包含重复元素,且输入合法。如果需要自己输入序列,可以使用 scanf 函数。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)