求后序遍历
Posted 范仁义
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求后序遍历相关的知识,希望对你有一定的参考价值。
求后序遍历
【问题描述】
输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。
【输入格式】
输入文件为tree.in,共两行,第一行一个字符串,表示树的先序遍
历,第二行一个字符串,表示树的中序遍历。树的结点一律用小写
字母表示。
【输出格式】
输出文件为tree.out,仅一行,表示树的后序遍历序列。
【样例输入】
abdec
dbeac
【样例输出】
debca
1 #include <cstring> 2 #include <iostream> 3 #include <cstdio> 4 using namespace std; 5 string s1, s2; 6 7 void calc(int l1, int r1, int l2, int r2) 8 { 9 int m = s2.find(s1[l1]); 10 if(m > l2) calc(l1 + 1, l1 + m - l2, l2, m - 1); 11 if(m < r2) calc(l1 + m - l2 + 1, r1, m + 1, r2); 12 cout << s1[l1]; 13 } 14 15 int main() 16 { 17 freopen("tree.in", "r", stdin); 18 freopen("tree.out", "w", stdout); 19 cin >> s1 >> s2; 20 calc(0, s1.length() - 1, 0, s2.length() - 1); 21 cout << endl; 22 return 0; 23 }
以上是关于求后序遍历的主要内容,如果未能解决你的问题,请参考以下文章