已知二叉树的中序遍历序列和后序遍历序列,求前序遍历序列
程序员文章站
2024-01-16 23:22:16
...
#include <bits/stdc++.h>
using namespace std;
char* in = (char *)malloc(sizeof(char));
char* post = (char *)malloc(sizeof(char));
struct node
{
char data;
node *left, *right;
};
node *create(int postL, int postR, int inL, int inR)
{
if (postL > postR)
return NULL;
node *root = new node;
root->data = post[postR];
int k;
for (k = inL; k < inR; k++)
if (in[k] == post[postR])
break;
int num = k - inL;
root->left = create(postL, postL + num - 1, inL, k - 1);
root->right = create(postL + num, postR - 1, k + 1, inR);
return root;
}
void preOrder(node *root)
{
if (root == NULL)
return;
cout << root->data;
preOrder(root->left);
preOrder(root->right);
}
int main()
{
scanf("%s", in);
scanf("%s", post);
int len = strlen(in);
node *root = create(0, len - 1, 0, len - 1);
preOrder(root);
return 0;
}
推荐阅读
-
已知二叉树的中序遍历序列和后序遍历序列,求前序遍历序列
-
二叉树 已知前序中序两个序列,建立二叉树(中序和后序也有)
-
二叉树的前序,中序,后序非递归遍历(C&C++)
-
105. 从前序与中序遍历序列构造二叉树
-
leetcode 105.从前序与中序遍历序列构造二叉树
-
leetcode 106. 从中序与后序遍历序列构造二叉树 105. 从前序与中序遍历序列构造二叉树思考分析
-
Python利用前序和中序遍历结果重建二叉树的方法
-
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
-
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
-
[PHP] 算法-根据前序和中序遍历结果重建二叉树的PHP实现