L2-006 树的遍历(25 分)

给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。

输入格式:

输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。

输出格式:

在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。

输入样例:

7
2 3 1 5 7 6 4
1 2 3 4 5 6 7

输出样例:

4 1 6 3 5 7 2
 #include<iostream>
#include<queue>
#include <vector>
#include <cstdio>
using namespace std;
const int N =;
struct Node{
int l,r;
}e[N];
int ba[N],mid[N],qi[N],n;
//la ra 中序
//lb rb 后序
/*
int build(int la,int ra,int lb,int rb){
if (la>ra) return 0;
int rt = ba[rb];
int p1=la,p2;
while(mid[p1]!=rt) p1++;
p2=p1-la;
e[rt].l=build(la,p1-1,lb,lb+p2-1);
e[rt].r=build(p1+1,ra,lb+p2,rb-1);
return rt;
}
*/
//la ,ra 先序
//lb ,rb 中序
int build(int la,int ra,int lb,int rb){
if(lb>rb) return ;
int rt = qi[la];
int p1=lb,p2;
while(mid[p1]!=rt) p1++;
p2=p1-lb;
e[rt].l=build(la+,la+p2,lb,p1-);
e[rt].r=build(la+p2+,ra,p1+,rb);
return rt;
}
/*
//先序输出
void dfs(int rt){
printf("%d ",rt);
if(e[rt].l) dfs(e[rt].l);
if(e[rt].r) dfs(e[rt].r);
} */
/*
//中序输出
void dfs(int rt){
if(e[rt].l) dfs(e[rt].l);
printf("%d ",rt);
if(e[rt].r) dfs(e[rt].r);
}
*/
/*
//后序输出
void dfs(int rt){
if(e[rt].l) dfs(e[rt].l);
if(e[rt].r) dfs(e[rt].r);
printf("%d ",rt);
}
*/
/*
//层序输出
void dfs(int s){
queue<int>Q ;
vector<int>ve;
Q.push(s);
while(!Q.empty()){
int u=Q.front();
Q.pop();
ve.push_back(u);
if(e[u].l) Q.push(e[u].l);
if(e[u].r) Q.push(e[u].r);
}
for(int i=0;i<ve.size();i++){
printf("%d%c",ve[i],i==ve.size()-1?'\n':' ');
}
}
*/ int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++) {
scanf("%d",&qi[i]);
}
for(int i=;i<=n;i++){
scanf("%d",&mid[i]);
}
build(,n,,n);
int rt=qi[];
dfs(rt);//根
return ;
}

L2-006 树的遍历 RTA的更多相关文章

  1. GPTL—练习集—006树的遍历

    #include<bits/stdc++.h> using namespace std; typedef int daTp;//datatype typedef struct BTNode ...

  2. 天梯 L2 树的遍历(已知后序中序求层序)

    树的遍历 (25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数.第二行 ...

  3. L2-006 树的遍历 (25 分) (根据后序遍历与中序遍历建二叉树)

    题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805069361299456 L2-006 树的遍历 (25 分 ...

  4. javascript实现数据结构: 树和二叉树的应用--最优二叉树(赫夫曼树),回溯法与树的遍历--求集合幂集及八皇后问题

    赫夫曼树及其应用 赫夫曼(Huffman)树又称最优树,是一类带权路径长度最短的树,有着广泛的应用. 最优二叉树(Huffman树) 1 基本概念 ① 结点路径:从树中一个结点到另一个结点的之间的分支 ...

  5. PTA 7-10 树的遍历(二叉树基础、层序遍历、STL初体验之queue)

    7-10 树的遍历(25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数 ...

  6. 数据结构--树(遍历,红黑,B树)

    平时接触树还比较少,写一篇博文来积累一下树的相关知识. 很早之前在数据结构里面学的树的遍历. 前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右子树 后序遍 ...

  7. YTU 3023: 树的遍历

    原文链接:https://www.dreamwings.cn/ytu3023/2617.html 3023: 树的遍历 时间限制: 1 Sec  内存限制: 128 MB 提交: 3  解决: 2 题 ...

  8. 团体程序设计天梯赛-练习集L2-006. 树的遍历

    L2-006. 树的遍历 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历 ...

  9. leetcode404-----简单的树的遍历

    Find the sum of all left leaves in a given binary tree. Example: 3 / \ 9 20 / \ 15 7 There are two l ...

随机推荐

  1. Linq 根据list属性去重复

    s.Where((x, i) => s.FindIndex(z => z.ArticleTitle == x.ArticleTitle) == i).ToList();

  2. nodejs模块学习: webpack

    nodejs模块学习: webpack nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs 的基础不稳固,需要开发者创造大量的轮子来解决现实 ...

  3. HubbleDotNet 使用类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using Hubble.S ...

  4. [转]使用 HTML5 WebSocket 构建实时 Web 应用

    HTML5 WebSocket 简介和实战演练 本文主要介绍了 HTML5 WebSocket 的原理以及它给实时 Web 开发带来的革命性的创新,并通过一个 WebSocket 服务器和客户端的案例 ...

  5. Spring中统一相同版本的api请求路径的一些思考

    Spring中统一相同版本的api请求路径的一些思考 问题场景 当我们在实际开发中,可能会遇到开发相同同版本的api, 假设相同版本的api请求路径为/v1/functionA,/v1/functio ...

  6. Collection-Iterator-foreach

    一.Collection(java.util) 1.概述:具有相同性质的一类事物的汇聚的整体,称为集合.任何集合都包含三块内容:对外的接口/接口的实现/对集合运算的算法.         java中使 ...

  7. Jmeter进行接口的性能测试

    一.录制Jmeter脚本 录制Jmeter脚本有两种方法,一种是设置代理:一种则是利用badboy软件,badboy软件支持导出jmx脚本. 这里我们介绍第二种方法,利用badboy录制脚本,然后导出 ...

  8. Python+selenium之获取验证信息

    通常获取验证信息用得最多的几种验证信息分别是title,URL和text.text方法用于获取标签对之间的文本信息. 代码如下: from selenium import webdriverimpor ...

  9. AutoIt 脚本1

    一.新建的AU3 脚本进行编辑 选择Edit Script 如果是相运行脚本可以用Run Script 如果是想将脚本编译成.exe 可以用Compile Script 1)一个简单的AU3脚本 Ma ...

  10. 如何处理错误消息Please install the gcc make perl packages

    如何处理这行错误消息? Please install the gcc make perl packages from your distribution. 执行命令行:yum install gcc ...