码迷,mamicode.com
首页 > 其他好文 > 详细

求后序遍历

时间:2017-09-03 00:30:59      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:stdout   ret   img   freopen   技术分享   hid   字母   style   stream   

求后序遍历

【问题描述】
  输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。
【输入格式】
  输入文件为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

 

求后序遍历

标签:stdout   ret   img   freopen   技术分享   hid   字母   style   stream   

原文地址:http://www.cnblogs.com/Renyi-Fan/p/7468375.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!