[NOIP2001]求先序排列

简介: [NOIP2001]求先序排列

题目: [NOIP2001]求先序排列 ,哈哈,我们今天来看一道二叉树的递归题嘛,这是选自NOIP上的一道题,好了,我们一起来看看题意吧:

题目描述是复制的,可能有部分显示不对,我就把题目链接放下面!

题目链接: [NOIP2001]求先序排列

题目描述

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

输入描述

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

输出描述

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

示例1

输入

BADC

BDCA

输出

ABCD

思路:

总体思路就是递归的处理左子树和右子树,代码里面有注释!

我们来看看成功AC的代码吧:

#include<bits/stdc++.h>
using namespace std;
string zhong,hou;
void deal(int l1,int r1,int l2,int r2){//l1到r1的中序遍历,  l2到r2的后序遍历
    if(l1>r1||l2>r2) return ;
    cout<<hou[r2];
    int pos=-1;
    for(int i=0;i<=r1;i++) if(zhong[i]==hou[r2]) pos=i;
    deal(l1,pos-1,l2,l2+pos-1-l1);//先看左子树
    deal(pos+1,r1,r2-r1+pos,r2-1);//看右子树
}
int main(){
    cin>>zhong>>hou;
    int len=hou.length();
    deal(0,len-1,0,len-1);
    return 0;
}


相关文章
|
1月前
|
机器学习/深度学习 存储 算法
【算法训练-回溯算法 一】【排列问题】全排列、全排列II
【算法训练-回溯算法 一】【排列问题】全排列、全排列II
63 0
|
8月前
|
算法 测试技术 C++
C++二分算法习题:判断是否是完全平方数[容易]和排列箱子[容易]
C++二分算法习题:判断是否是完全平方数[容易]和排列箱子[容易]
|
1月前
|
测试技术
【动态规划】【组合数学】1866. 恰有 K 根木棍可以看到的排列数目
【动态规划】【组合数学】1866. 恰有 K 根木棍可以看到的排列数目
|
8月前
|
存储
【Leetcode -563.二叉树的坡度 - Nowcoder -KY11.二叉树遍历】
【Leetcode -563.二叉树的坡度 - Nowcoder -KY11.二叉树遍历】
32 0
|
1月前
|
存储 索引
每日一题——寻找右区间(排序 + 二分查找)
每日一题——寻找右区间(排序 + 二分查找)
|
10月前
|
人工智能 BI
牛客 序列排列1
牛客 序列排列1
46 0
|
11月前
|
移动开发 算法
DFS深度优先算法 —— AcWing 842. 排列数字AcWing 843. n-皇后问题
DFS深度优先算法 —— AcWing 842. 排列数字AcWing 843. n-皇后问题
81 0
|
C++
C/C++每日一练(20230515) 区间和的个数、BST最近公共祖先、最接近元素
C/C++每日一练(20230515) 区间和的个数、BST最近公共祖先、最接近元素
79 0
AcWing 823. 排列
AcWing 823. 排列
51 0
AcWing 823. 排列