问题:
输入后序和中序,求中序遍历。
算法:
1 void f2(string &pre,string in, string post) 2 { 3 if(post.length()==0) //序列为空结束 4 return; 5 int n=post.length()-1; //根节点 6 char ch=post[n]; 7 pre+=ch;//根节点存入前序中 8 9 //处理左子树10 f2(pre,in.substr(0,in.find(ch)),post.substr(0,in.find(ch)));11 12 //处理右子树13 f2(pre,in.substr(in.find(ch)+1,in.length()-in.find(ch)-1),post.substr(in.find(ch),in.length()-in.find(ch)-1));14 15 }16 void main()17 {18 string pre=""; //ABCDEF19 string in="CBAEDF";20 string post="CBEFDA";21 f2(pre,in,post);22 cout<<