L2-006 树的遍历 RTA
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的更多相关文章
- GPTL—练习集—006树的遍历
#include<bits/stdc++.h> using namespace std; typedef int daTp;//datatype typedef struct BTNode ...
- 天梯 L2 树的遍历(已知后序中序求层序)
树的遍历 (25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数.第二行 ...
- L2-006 树的遍历 (25 分) (根据后序遍历与中序遍历建二叉树)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805069361299456 L2-006 树的遍历 (25 分 ...
- javascript实现数据结构: 树和二叉树的应用--最优二叉树(赫夫曼树),回溯法与树的遍历--求集合幂集及八皇后问题
赫夫曼树及其应用 赫夫曼(Huffman)树又称最优树,是一类带权路径长度最短的树,有着广泛的应用. 最优二叉树(Huffman树) 1 基本概念 ① 结点路径:从树中一个结点到另一个结点的之间的分支 ...
- PTA 7-10 树的遍历(二叉树基础、层序遍历、STL初体验之queue)
7-10 树的遍历(25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数 ...
- 数据结构--树(遍历,红黑,B树)
平时接触树还比较少,写一篇博文来积累一下树的相关知识. 很早之前在数据结构里面学的树的遍历. 前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右子树 后序遍 ...
- YTU 3023: 树的遍历
原文链接:https://www.dreamwings.cn/ytu3023/2617.html 3023: 树的遍历 时间限制: 1 Sec 内存限制: 128 MB 提交: 3 解决: 2 题 ...
- 团体程序设计天梯赛-练习集L2-006. 树的遍历
L2-006. 树的遍历 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历 ...
- leetcode404-----简单的树的遍历
Find the sum of all left leaves in a given binary tree. Example: 3 / \ 9 20 / \ 15 7 There are two l ...
随机推荐
- AD中添加中文字符丝印的方法:
一 一般中文丝印: 用快捷键L打开层管理,在View options中勾选convert special 选项: 用快捷键P,S文本中输入你要的汉字,选中ture type,在select ture ...
- Eclipse Debug时出现Source not found错误
今天在Debug Java代码时报出了Source not found这个错误,如下图所示,经过查询资料得知这是由于缺少Hadoop源程序代码所导致的错误. 在此我建议了两种方法,可以先采用方法一,这 ...
- 机器学习框架ML.NET学习笔记【9】自动学习
一.概述 本篇我们首先通过回归算法实现一个葡萄酒品质预测的程序,然后通过AutoML的方法再重新实现,通过对比两种实现方式来学习AutoML的应用. 首先数据集来自于竞赛网站kaggle.com的UC ...
- C. Journey
C. Journey time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...
- ECharts3.0介绍、入门
ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,S ...
- JAVA 员工管理系统(用抽象类实现),简易版。
package Demo513; /* 定义一个Employee类,该类包含: private 成员变量name,number,birthday,其中birthday为MyDate类的对象: abst ...
- IO(File、递归)
第1章 File 1.1 IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下 ...
- echarts使用中的那些事儿(二)
然而第二天的事情你怎么能猜到客户的心思呢: 客户:右边的是啥? 偶:可放大缩小查看各个时期的数据. 客户:把它去掉吧,全部直观显示. 偶:哦,不过数据过多的话会导致页面过长的. 客户:只有你知道这个可 ...
- javascript组件封装中一段通用代码解读
有图有真相,先上图. 相信很多想去研究源码的小伙伴一定被这段代码给吓着了把,直接就打消了往下看下去的想法.我刚开始看的时候也是有点一头雾水,这是什么东东这么长,但是慢慢分析你就会发现其中的奥秘,且听我 ...
- 微信小程序中的target和currentTarget区别
最近在学习微信小程序相关知识,其中提到了两个属性target和currentTarget,其中target是指向触发事件的元素(常见于事件委托中),而currentTarget是指向捕获事件的元素(即 ...