1085-由前序中序求后序

#include 
#include 
#include
#include
#include
using namespace std;
vector pre;
vector in;
vector post;
stack st;

void ToPost(int root,int s1,int s2,int e2){
	post[root]=pre[s1];
	int i;
	for(i=s2;i<=e2;i++){
		if(in[i]==pre[s1])
			break;
	}
	if(i!=s2)//
		ToPost(root-(e2-i)-1,s1+1,s2,i-1);
	if(i!=e2)//有右子树
		ToPost(root-1,s1+(i-s2)+1,i+1,e2);
	
}


int main ()
{
   int i,j,N,p,d;
   char s[10];
   scanf("%d",&N);
   post.resize(N+1);
   pre.push_back(0);
   in.push_back(0);

   for(i=0;i

 

你可能感兴趣的:(1085-由前序中序求后序)