二叉树中前序 中序 后序的互推

最近开始复习数据结构,就从二叉树开始吧

1.复习前序 中序 后序
结构:
前序:根(左子树)(右子树)
中序:(左子树)根 (右子树)
后序:(左子树)(右子树)根
2. 前序+中序->后序
由于前序的结构,第一个是根,中序中根的位置是介于左子树和右子树,所以我们可以通过前序获得根,通过中序将二叉树分裂,由于后序中的根在最后一个,所以我们可以通过先左后右依次将分裂到最小的树的根存储即可,所有这明显是个递归思想,看代码吧
样例:
前序:BAGCDZHKX
中序:ACGDBHZKX

#include
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]

你可能感兴趣的:(二叉树,递归法)