1364:二叉树遍历(flist)

简介: 1364:二叉树遍历(flist)

1364:二叉树遍历(flist)

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,给定中序和其它一种遍历的序列就可以确定一棵二叉树的结构。

假定一棵二叉树一个结点用一个字符描述,现在给出中序和按层遍历的字符串,求该树的先序遍历字符串。

【输入】

两行,每行是由字母组成的字符串(一行的每个字符都是唯一的),分别表示二叉树的中序遍历和按层遍历的序列。

【输出】

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

【输入样例】

DBEAC

ABCDE

【输出样例】

ABDEC

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
string in,level;//int中序遍历 level层序遍历
void preorder(int l1,int r1,int l2,int r2){
  int pos;
  for(int i=l2;i<=r2;i++){
    int flag=0;
    for(int j=l1;j<=r1;j++){
      if(level[i]==in[j]){//找根
        cout<<in[j];
        pos=j;
        flag=1;
        break;
      }
    }
    if(flag) break;
  }
  if(pos>l1) preorder(l1,pos-1,l2,r2);
  if(pos<r1) preorder(pos+1,r1,l2,r2);
}
int main()
{
  cin>>in>>level;
  preorder(0,in.length()-1,0,level.length()-1); 
    return 0;
}
相关文章
|
8月前
二叉树遍历及应用
二叉树遍历及应用
87 0
|
7月前
|
存储 算法
数据结构和算法学习记录——二叉树的非递归遍历(中序遍历、先序遍历、后序遍历)
数据结构和算法学习记录——二叉树的非递归遍历(中序遍历、先序遍历、后序遍历)
29 0
|
8月前
【二叉树遍历和练习】
【二叉树遍历和练习】
61 0
|
8月前
|
算法 Java C++
数据结构与算法面试题:实现二叉树的遍历(前序、中序、后序、层序)。
数据结构与算法面试题:实现二叉树的遍历(前序、中序、后序、层序)。
50 0
非递归实现二叉树遍历
非递归实现二叉树遍历
57 0
|
存储 算法 JavaScript
算法系列-二叉树遍历(非递归实现)
在内卷潮流的席卷下,身为算法小白的我不得不问自己,是否得踏上征程,征服这座巍巍高山。 从零开始,终点不知何方,取决于自己可以坚持多久。 希望你可以和我一样,克服恐惧,哪怕毫无基础,哪怕天生愚钝,依然选择直面困难。
|
存储 算法
算法系列-二叉树遍历
在内卷潮流的席卷下,身为算法小白的我不得不问自己,是否得踏上征程,征服这座巍巍高山。 从零开始,终点不知何方,取决于自己可以坚持多久。 希望你可以和我一样,克服恐惧,哪怕毫无基础,哪怕天生愚钝,依然选择直面困难。
|
存储 算法
【数据结构与算法】二叉树的非递归前中后序遍历
【数据结构与算法】二叉树的非递归前中后序遍历
【数据结构与算法】二叉树的非递归前中后序遍历
|
算法 Java C++
详解二叉树遍历(C/C++)
文章目录 目录 文章目录 一、先序遍历 1.知识点概述 2.图片理解 ​编辑 3.代码 二、中序遍历 1.知识点概述 2.图片理解 3.代码 三、后序遍历 1.知识点概念 2.图片理解 3.代码 四、层序遍历 1.知识点概述 2.图片理解 3.代码 五、二叉树的建立 1.补空法 六、二叉树的还原 1.算法步骤 2.代码 总结(二叉树的四种遍历代码)
317 0
详解二叉树遍历(C/C++)