最近开始复习数据结构,就从二叉树开始吧
1.复习前序 中序 后序
结构:
前序:根(左子树)(右子树)
中序:(左子树)根 (右子树)
后序:(左子树)(右子树)根
2. 前序+中序->后序
由于前序的结构,第一个是根,中序中根的位置是介于左子树和右子树,所以我们可以通过前序获得根,通过中序将二叉树分裂,由于后序中的根在最后一个,所以我们可以通过先左后右依次将分裂到最小的树的根存储即可,所有这明显是个递归思想,看代码吧
样例:
前序:BAGCDZHKX
中序:ACGDBHZKX
#include<bits/stdc++.h>
using namespace std;
string qian,zhong;
int j=0;
char houxu[1000];
void hou(int gen,int start,int end){
if(start>ends)//判断退出的条件
return;
int i;
i=zhong.find(qian[gen]