zoukankan      html  css  js  c++  java
  • 洛谷——P1030 求先序排列

    https://www.luogu.org/problem/show?pid=1030#sub

    题目描述

    给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。

    输入输出格式

    输入格式:

    2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。

    输出格式:

    1行,表示一棵二叉树的先序。

    输入输出样例

    输入样例#1:
    BADC
    BDCA
    
    输出样例#1:
    ABCD

     1 #include <algorithm>
     2 #include <cstring>
     3 #include <cstdio>
     4 
     5 #define N 10015
     6 
     7 using namespace std;
     8 
     9 char midx[N],bhdx[N];
    10 char midd[N],bhdd[N];
    11 
    12 void DFS(int l,int r,int L,int R)
    13 {
    14     printf("%c",bhdx[R]);
    15     if(bhdd[R]>l) DFS(l,bhdd[R]-1,L,bhdd[R]-l+L-1);
    16     if(bhdd[R]<r) DFS(bhdd[R]+1,r,R-(r-bhdd[R]),R-1);
    17 }
    18 
    19 int main()
    20 {
    21     scanf("%s",midx);
    22     scanf("%s",bhdx);
    23     int n=strlen(midx);
    24     for(int i=0;i<n;i++) midd[midx[i]]=i;
    25     for(int i=0;i<n;i++) bhdd[i]=midd[bhdx[i]];
    26     DFS(0,n-1,0,n-1);
    27     return 0;
    28 }
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    写日志
    读写excel
    python安装模块
    数据库
    日志和关键字查找
    时间戳
    os 模块
    图-最小生成树算法之Kruskal及其Java实现
    图-图的表示、搜索算法及其Java实现
    前端实现list排序
  • 原文地址:https://www.cnblogs.com/Shy-key/p/6781214.html
Copyright © 2011-2022 走看看