problem

7-11 完全二叉树的层序遍历
一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。

给定一棵完全二叉树的后序遍历,请你给出这棵树的层序遍历结果。

输入格式:
输入在第一行中给出正整数 N(≤30),即树中结点个数。第二行给出后序遍历序列,为 N 个不超过 100 的正整数。同一行中所有数字都以空格分隔。

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

输入样例:
8
91 71 2 34 10 15 55 18
输出样例:
18 34 55 71 2 10 15 91
(300分)
作者
陈越
单位
浙江大学
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

  • 给出一颗完全二叉树的的后序遍历
  • 求它的层次遍历

solution

  • 根据完全二叉树性质,除了最后一层都是满的,最后一层都在最左边
  • 完全二叉树层次遍历的存储方式为Tree[p],lch=p<<1,rch=p<<1|1,(线段树存法)。
  • 逆向去推:假设建好了结果的完全树,直接递归后序遍历它,那么第i个访问到的节点一定是后序遍历中的第i个数。
  • 所以直接去递归,每次用序列值去更新树中的值即可。。
//完全二叉树后序转层次遍历
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 100010;int n, a[maxn];
int Tree[maxn], r;
void build(int x){if(x>n)return ;build(x<<1);build(x<<1|1);Tree[x] = a[++r];
}int main(){cin>>n;for(int i = 1; i <= n; i++)cin>>a[i];build(1);for(int i = 1; i <= n; i++){if(i!=1)cout<<" ";cout<<Tree[i];}return 0;
}

【2020团体程序设计天梯赛】L2-3 完全二叉树的层序遍历(后序遍历转层次遍历)相关推荐

  1. 团体程序设计天梯赛-L2组

    团体程序设计天梯赛-L2组 -------------------------------------------------------------------------------- 题目传送门 ...

  2. 【2020团体程序设计天梯赛】L2部分(PTA,L2-033到L2-036)题解代码复盘

    概况(复盘) 打完最后的分数是170,三等还差5分 除了模板25分是我的锅之外(明明考前还看了的),, 还有L1最后一题列标号567没减3扣了2分,L2第二题身份证号码是数字扣了4分. 以及改了一个多 ...

  3. 团体程序设计天梯赛 L2 题目合集

    前言 发现自己还能再参加一次天梯赛,在高兴之余,决定把在赛前将所有的天梯赛真题过一遍,希望自己可以取得理想的成绩.目前 L1 的题目已经刷完,打算在赛前刷完 L2 的题目. 本来想 L2 的题目都写个 ...

  4. 2020团体程序设计天梯赛题解(部分)

    文章目录 个人题解:这里我只写我个人认为应该写的题解,太简单的就不写了 L2-2 口罩发放 (25分) 思路:正解 L2-3 完全二叉树的层序遍历 (25分) 思路:正解 L2-4 网红点打卡攻略 ( ...

  5. 【2020团体程序设计天梯赛】L1部分(PTA,L1-065到L1-072)题解代码

    概要 L1一共8题,5分,10分,15分,20分各两题. 5分题一般会输入输出就行,10分题就是一个循环或者选择结构 15分题有简单的模拟和查找,20分题是稍微繁琐的简单模拟这样. L1-065 嫑废 ...

  6. 【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案,题解,附代码

    [CCCC]PAT : 团体程序设计天梯赛-练习集 L2 答案 鉴定完毕,全部水题 ヾ(•ω•`)o 知识点分类(32): 1.树锯结构(9):二叉树的存储,编号,遍历顺序转换,求深度,底层节点,从底 ...

  7. 2020年团体程序设计天梯赛L1题目集(题目+代码)

    2020年11月团体程序设计天梯赛 第一次参加天梯赛,除了在门口冻得瑟瑟发抖,还有按不动的shift之外一切都还好- tip:不知道啥原因代码上基本没有注释,希望dalao们不要介意~ L1-1 嫑废 ...

  8. 2021年团体程序设计天梯赛-总决赛L2题解

    2021年团体程序设计天梯赛-总决赛! L2-1 包装机 思路:模拟 代码: #include<bits/stdc++.h> using namespace std; int main() ...

  9. 2019第四届团体程序设计天梯赛总结

    2020.10.22刚刚结束天梯赛的校选,只不过是作为出题人,还有一个月天梯赛又要来了,回看之前的总结真是稚嫩啊,取消文章的私密了 2019.3.30--第四届CCCC团体程序设计天梯赛 3月的事情貌 ...

最新文章

  1. 视觉与机械手标定系统技术解决方案
  2. 反汇编的应用1-软件破解
  3. Linux下的grep命令详解
  4. ROS学习(十二):ROS URDF-model_state
  5. Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略
  6. 编写高质量代码的50条黄金守则-Day 04(首选字符串插值)
  7. Maven - 快速创建Java工程和Web工程
  8. 马斯克说话还能算数吗?声称删除Twitter账号却依旧活跃
  9. lisp的vla函数画矩形_利用Lisp做Tin三角网建模(源代码)
  10. C#实现模糊PID算法的代码
  11. 信息搜集方法小结(持续更新)
  12. ks3云存储本地上传限速
  13. Logstash系列: mutate拦截器的使用
  14. Android UI
  15. Installations
  16. php 打印 加标题,打印每页都有标题怎么设置
  17. Deployer php自动部署,基于 deployer 的 Web 端自动部署
  18. 基于springboot开发的停车场管理系统-计算机毕业设计
  19. 软件开发项目可行性分析报告样例
  20. DynamoDB系列之--本地二级索引

热门文章

  1. 空间波(space wave)
  2. 算法 Tricks(二) —— 大数的处理
  3. php服务器端注释,php标识和注释
  4. python3 写入excel_Python3 读、写Excel文件的操作方法
  5. 自学python编程笔记本推荐-这件神器,每个 Python入门学习者都值得一试
  6. python小白从哪来开始-python入门小白的困惑,怎么入门python?
  7. python经典程序-python经典趣味24点游戏程序设计
  8. 学python需要什么基础-学习python需要什么基础
  9. python3入门代码-Python3 入门教程 简单但比较不错
  10. 如何系统的自学python-应该怎样系统的学习Python标准库?