Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<string>#include<stack>using namespace std;stack<char> Stack;int findPos(char inOrder[],char c,int start,int end){for(int i=start;i<=end;++i){if(inOrder[i]==c){return i;}}return -1;}void reBuild(char preOrder[],char inOrder[],int pStart,int pEnd,int iStart,int iEnd){if(iStart>iEnd)return;if(iStart==iEnd){Stack.push(inOrder[iStart]);return;}int position=findPos(inOrder,preOrder[pStart],iStart,iEnd);Stack.push(inOrder[position]);