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. Spark Mllib里如何将如温度、湿度和风速等数值特征字段用除以***进行标准化(图文详解)

    不多说,直接上干货! 具体,见 Hadoop+Spark大数据巨量分析与机器学习整合开发实战的第18章 决策树回归分类Bike Sharing数据集

  2. mysql explain 的extra中using index ,using where,using index condition,using index & using where理解

    using index :查找使用了索引,查询结果覆盖了索引 using where:查找使用了索引,不需要回表去查询所需的数据,查询结果是索引的一部分 using index condition:查 ...

  3. 微信支付(java版本)_支付结果通知

    应用场景: 支付完成后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答. 对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略定期重新 ...

  4. event——事件对象详解

    PS:转自https://www.cnblogs.com/songyaqi/p/5204143.html 1. 事件对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标 ...

  5. BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法

    最近一直在做互金平台,做到后台提交表单的时候出现验证提交数据一直没有提交的问题.于是百度了一下.果然是版本问题造成的.幸好找到了问题所在.我一直仿照的是东钿原微信平台的做法,但是使用byond的后台框 ...

  6. Windows中将nginx添加到服务

    下载安装nginx http://nginx.org/en/download.html 下载后解压到C盘 C:\nginx-1.14.0 添加服务 需要借助"Windows Service ...

  7. iOS 应用架构 (二)

    iOS 客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答 iOS 应用架构中的种种问题,本文是其中的第二篇,主要讲 View 层的组织和调用方案.上篇主要讲 View ...

  8. ionic 2 起航 控件的使用 客户列表场景(二)

    首先放出我hithub项目代码例子,有兴趣研究探讨的同学可以去看看 https://github.com/linyuebin2016/ionic2.git 下面我们来尝试下第一个项目场景 一份客户的列 ...

  9. C语言的sprintf()和snprintf()

    1.sprintf()函数 送格式化输出到字符串中,返回实际输出到字符串中的个数. 例如: char buffer[80]; sprint(buffer,"1234567890") ...

  10. 如果不需要,建议移除net standard类库中的Microsoft.NETCore.Portable.Compatibility

    使用Microsoft.NETCore.Portable.Compatibility会破坏该类库在Mono和Xamarin平台的兼容性 可能导致的问题 provides a compile-time ...