首页 > 其他分享 >[2001年NOIP普及组] 求先序排列

[2001年NOIP普及组] 求先序排列

时间:2022-08-15 17:37:25浏览次数:57  
标签:排列 遍历 求先序 NOIP int 中序 2001 二叉树 输入

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

输入
第一行输入一个字符串表示二叉树的中序排列,第二行输入一个字符串表示二叉树的后序排列。
输出
对于每组输入数据,输出二叉树的先序排列。
样例输入
BADC
BDCA
样例输出
ABCD

输入中序遍历和后序遍历求先序遍历
先在中序遍历种确定根节点的位置
以先序遍历的方式遍历

#include<bits/stdc++.h>

using namespace std;

string In,Post;

void Work(int LI,int RI,int LP,int RP)
{
    cout<<Post[RP];
    int MD=In.find(Post[RP]);//在中序遍历寻找root节点的位置
    if(MD>LI)
    {
        Work(LI,MD-1,LP,LP+MD-LI-1);
     //遍历左子树
    }
    if(MD<RI)
    {
        Work(MD+1,RI,LP+MD-LI,RP-1);
     //遍历右子树 } } int main() { cin>>In>>Post; Work(0,In.length()-1,0,Post.length()-1); return 0; }

 

标签:排列,遍历,求先序,NOIP,int,中序,2001,二叉树,输入
From: https://www.cnblogs.com/XdzxBo/p/16589002.html

相关文章

  • [2004年NOIP普及组] FBI树
    我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。FBI树是一种二叉树[1],它的结点类型也包括F结点,B结点和......
  • [2004年NOIP普及组] FBI树(从下往上推)
    分析:根据样例得下面每有二个,则往上输出一个,以此类推,递推如:下面为10001011先判断b【1】【1】在判断b【1】【2】此时【2】已是偶数,给b【2】【1】赋值(第一个数是在原有层数+......
  • [2004年NOIP普及组] FBI树
    后序遍历:先左儿子,后右儿子,最后根同理类推先序遍历:先根,再左儿子,后右儿子中序遍历:先左儿子,再根,最后右儿子 ......
  • [NOIP2013 提高组] 积木大赛
    试题分析:题目虽然可以用递归,但最优方法还是用贪心,每次输入进去,如果比前一个数小,那么减前一个数时就可以顺便把他减掉,如果大于则还得自己减。代码: ......
  • [2001年NOIP普及组] 求先序排列
    前序遍历的规则:(1)访问根节点   (2)前序遍历左子树(3)前序遍历右子树中序遍历的规则:(1)中序遍历左子树 (2)访问根节点  (3)中序遍历右子树后序遍历二叉树的规则: (1)后序遍历左......
  • [NOIP2004 普及组] FBI 树
    试题分析:题目意思是给出一个数字串,全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。在给定规则的基础上建树,并输出建完的树的后序排列。所以我们要用递......
  • 2001年NOIP普及组] 求先序排列
    2001年NOIP普及组]求先序排列分析:根据题意,已知中序遍历和后序遍历求先序遍历,很显然是用递归求解。我们知道后序遍历中根节点是最后一个,所以可以首先确定根节点的位置,然......
  • [NOIP2001 普及组] 求先序排列
    试题分析:题目中提及了树的先序,中序,后序排列,所以我们需要先知道这三种排列是什么意思。二叉树的3种(深度优先)排列:先序排列,“根左右”。即对于二叉树的每一个子树,先访问其根......
  • NC16645 [NOIP2007]矩阵取数游戏
    题目链接题目题目描述帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数。游戏规则如下:1.每次取数时须从每行各取走一个元素,......
  • noip2018提高组初赛试题
    一、单项选择题(共10题,每题2分,共计20分;每题有且仅有一个正确选项)\2.下列属于解释执行的程序设计语言是()。A.CB.C++C.PascalD.Python答案:D解析:编译语言:C......