首页 > 其他分享 >先序排列

先序排列

时间:2023-05-02 15:11:08浏览次数:51  
标签:排列 int tree ## 先序 二叉树

# [NOIP2001 普及组] 求先序排列

## 题目描述

给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,且二叉树的节点个数 $ \le 8$)。

## 输入格式

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

## 输出格式

共一行一个字符串,表示一棵二叉树的先序。

## 样例 #1

### 样例输入 #1

```
BADC
BDCA
```

### 样例输出 #1

```
ABCD
```

#include<cstdio>//程序开始!
#include<cstring>
using namespace std;
char a[100]/*存中序*/,b[100]/*存后序*/;
void tree(int d,int e)//递归函数
{
int i,f,c,j;
c=0;//c归零(为什么你一会儿就知道了)
if(d>e) return;//查找范围为d-e(一颗树),范围中没东西了,结束
for(j=strlen(a)-1;j>=0;j--)//倒着找,以便找出最后一个
{
for(i=d;i<=e;i++)//!!!整棵树都要找!!!
{
if(a[i]==b[j])//找到了,记录,结束查找
{
c=i;
break;
}
}
if(c) break;//c有变动,退出循环(没变动说明没找到或者最后才找到)
}
printf("%c",a[c]);//输出根
tree(d,c-1);//左子树先
tree(c+1,e);
}
int main()
{
int i,c;
scanf("%s%*c%s",a,b);//输入(%*c是为了不记录换行)
tree(0,strlen(a)-1);//调用函数
}

标签:排列,int,tree,##,先序,二叉树
From: https://www.cnblogs.com/gsq1/p/17367729.html

相关文章

  • 【完全背包的排列问题】NO377. 组合总和 Ⅳ
    [完全背包排列问题]377.组合总和Ⅳ给你一个由不同整数组成的数组nums,和一个目标整数target。请你从nums中找出并返回总和为target的元素组合的个数。题目数据保证答案符合32位整数范围。示例1:输入:nums=[1,2,3],target=4输出:7解释:所有可能的组合为:(1,......
  • 剑指 Offer II 083. 没有重复元素集合的全排列
     分析:今天看的明日一练,这道题有点忘了怎么做了先偷个懒,用了个全排列函数,后面再研究代码:1classSolution(object):2defpermute(self,nums):3"""4:typenums:List[int]5:rtype:List[List[int]]6"""7returnlis......
  • 2023-04-28:将一个给定字符串 s 根据给定的行数 numRows 以从上往下、从左到右进行 Z
    2023-04-28:将一个给定字符串s根据给定的行数numRows以从上往下、从左到右进行Z字形排列比如输入字符串为"PAYPALISHIRING"行数为3时,排列如下PAHNAPLSIIGYIR之后,你的输出需要从左往右逐行读取,产生出一个新的字符串"PAHNAPLSIIGYIR"请你实现......
  • 排列与组合
    目录简介排列乘法原理排列数全排列组合加法原理组合数简介排列就是指从给定个数的元素中取出指定个数的元素进行排序。组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。排列乘法原理如果完成一个工程需要分\(n\)个步骤,假设\(a_i\)代表第\(i\)个步骤的......
  • 请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来....
    先转载过来以后再研究importjava.io.*;importjava.util.Stack;publicclassmyTest{privatemyTreetree;/***二叉树的插入,参数为(关键字,数据)***/publicvoidinsert(intkey,intdata......
  • 【剑指 Offer】38. 字符串的排列
    【题目】输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例:输入:s="abc"输出:["abc","acb","bac","bca","cab","cba"]来源:力扣(LeetCode)链接:https://leetcode.cn/problems/zi-fu-chuan-de-pai-lie-......
  • 康托展开 全排列与其字典序的双映射转换
    对于给定的序列123,其全排列有6种,按照字典序从小到大即为01  23451,2,31,3,22,1,32,3,13,1,23,2,1可以看出,每个全排列序列都唯一对应一个字典序数(从0开始),那么,有什么方法可以根据序列求出其对应的字典序或者根据字典序来推断其对应序列呢一个朴素的思想,我们使用深搜......
  • 回溯算法:剑指 Offer 38. 字符串的排列
    题目描述:输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 限制:1<=s的长度<=8  classSolution{Set<String>res=newHashSet<>();publicString[]permutation(Strings){b......
  • 牛客网——实现二叉树先序、中序和后序遍历
    title:牛客网——实现二叉树先序、中序和后序遍历题目描述:分别按照二叉树先序,中序和后序打印所有的节点。示例:输入:{1,2,3}返回值:[[1,2,3],[2,1,3],[2,3,1]]备注:$$n\leqslant10^6$$代码如下:(照着别人的代码敲的,待重新实现一遍)/***structTreeNode{* int......
  • 序列、排列的全排列的逆序对
    1.题目大意:给一个长度为n的的数组a,n是1到1e5,ai是1到1e5,问a的所有排序的序列的逆序对之和,会有重复的数字出现题目链接:https://ac.nowcoder.com/acm/contest/46597/Etypedeflonglongll;typedeflonglongLL;typedefpair<int,int>pii;typedefunsignedlonglongull;t......