求后序遍历

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 }
View Code

 













以上是关于求后序遍历的主要内容,如果未能解决你的问题,请参考以下文章

已知先序遍历和中序遍历,求后序遍历

求后序遍历

codevs2010 求后序遍历

例3-4求后序遍历

求后序遍历(信息学奥赛一本通 1339)

树的遍历(前序中序求后序,后序中序求前序)