zoukankan      html  css  js  c++  java
  • 求后序遍历

    求后序遍历

    【问题描述】
      输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。
    【输入格式】
      输入文件为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
  • 相关阅读:
    HTML页面跳转的5种方法
    ngixn配置
    redis秒杀
    php 设计模式
    MySQL之事务的四大特性
    [置顶] JNI之java传递数据给c语言
    jQuery 快速结束当前动画
    编绎OpenJDK
    CF#231DIV2:A Good Number
    CF#213DIV2:B The Fibonacci Segment
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7468375.html
Copyright © 2011-2022 走看看