zoukankan      html  css  js  c++  java
  • TZOJ 3209 后序遍历(已知中序前序求后序)

    描述

    在数据结构中,遍历是二叉树最重要的操作之一。所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。

    这里给出三种遍历算法。

    1.中序遍历的递归算法定义:
         若二叉树非空,则依次执行如下操作:
             (1)遍历左子树;
             (2)访问根结点;
             (3)遍历右子树。
    2.前序遍历的递归算法定义:
        若二叉树非空,则依次执行如下操作:
             (1) 访问根结点;
             (2) 遍历左子树;
             (3) 遍历右子树。
    3.后序遍历得递归算法定义:
        若二叉树非空,则依次执行如下操作:
             (1)遍历左子树;
             (2)遍历右子树;
             (3)访问根结点。
    现在给出一个二叉树的中序遍历和前序遍历。求它的后序遍历。

    样例中的二叉树如下:

         a                      x
    / /
    b c n u
    / / /
    d e f l i
    /
    g

    输入

    输入有多组数据,第一行有一个整数n,表示有n组数据。每组数据两行,每行均是由a-z的字符组成的字符串,每个字母表示一个结点。其顺序,分别为树的中序遍历和前序遍历。长度小于27.

    输出

    对于每组数据,输出一行,树的后序遍历。

    样例输入

    2
    dbgeafc
    abdegcf
    lnixu
    xnliu

    样例输出

    dgebfca
    linux
    题意

    已知中序前序求后序

    题解

    输出后序可以直接在递归里实现,算是有了个新操作

    代码

     1 #include<iostream>
     2 #include<string>
     3 using namespace std;
     4 
     5 string In,Per;
     6 void build(int L1,int R1,int L2,int R2)
     7 {
     8     if(L1>R1)return;
     9     int root=Per[L2];
    10     int p=L1;
    11     while(In[p]!=Per[L2])p++;
    12     int cnt=p-L1;
    13     //cout<<root;//前序
    14     build(L1,p-1,L2+1,L2+cnt);
    15     //cout<<root;//中序
    16     build(p+1,R1,L2+cnt+1,R2);
    17     cout<<root;//后序
    18 }
    19 int main()
    20 {
    21     int t;
    22     cin>>t;
    23     while(t--)
    24     {
    25         cin>>In>>Per;
    26         int n=In.size()-1;
    27         build(0,n,0,n);
    28         cout<<endl;
    29     }
    30     return 0;
    31 }
  • 相关阅读:
    ST表——————一失足成千古恨系列2
    五一清北学堂培训之图论
    最长上升子序列的教训———一失足成千古恨系列1
    五一清北学堂培训之Day 3之DP
    [bzoj1057][ZJOI2007]棋盘制作
    [bzoj1010][HNOI2008]玩具装箱TOY
    [bzoj2326][HNOI2011]数学作业
    如何使用矩阵乘法加速动态规划——以[SDOI2009]HH去散步为例
    [bzoj1060][zjoi2007]时态同步
    [bzoj1046][HAOI2007]上升序列
  • 原文地址:https://www.cnblogs.com/taozi1115402474/p/8548080.html
Copyright © 2011-2022 走看看