(数据结构)二叉树遍历序列还原
给出二叉树的中序遍历序列和后序遍历序列,编程还原该二叉树。
输入:
第1行为二叉树的中序遍历序列
第2行为二叉树的后序遍历序列
输出:
二叉树的按层遍历序列
测试用例1:
测试输入:
badcfeg↵
bdfgeca↵
期待的输出:
abcdefg↵
测试用例2:
测试输入:
cbdafeg↵
cbdfgea↵
期待的输出:
adebfgc↵
测试用例3:
测试输入:
edcba↵
edcba↵
期待的输出:
abcde↵
测试用例4:
测试输入:
bdfgeca↵
2.gfedcba↵
期待的输出:
abcdefg↵
代码如下:
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
typedef struct BiNode
{
char data;
struct BiNode * lch;
struct BiNode * rch;
}BiNode, *BiTree;
void BuildTree(BiTree &t,string Inorder,string Postorder)
{
if (Inorder.length()==0) return;
int length_Post = Postorder.length();
char Rootnode = Postorder