1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
#include <iostream> #include <vector> #include <algorithm> #include <fstream> using namespace std; int pre[10001]; int in[10001]; ofstream wrt; int search(int _in[],int a,int len) { for(int i=0;i<len;i++) { if(_in[i]==a) return i; } return -1; } void printPostOrder(int _in[],int _pre[],int n) { int root=search(_in,_pre[0],n); if(root!=0) printPostOrder(_in,_pre+1,root); if(root!=n-1) printPostOrder(_in+root+1,_pre+root+1,n-root-1); cout<<_pre[0]<<"\n"; //wrt<<_pre[0]<<"\n"; } int main() { int i=0; int a; while(cin>>a) { //if(a==0) //break; in[i]=a;//.push_back(a); pre[i]=a;//.push_back(a); i++; } //wrt.open("w.txt"); sort(in,in+i); printPostOrder(in,pre,i); //wrt.close(); //for(int i=0;i<) } |