试题 算法训练 绘制地图

问题描述
  最近,WYF正准备参观他的点卡工厂。WYF集团的经理氰垃圾需要帮助WYF设计参“观”路线。现在,氰垃圾知道一下几件事情:
  1.WYF的点卡工厂构成一颗二叉树。
  2.一共有n座工厂。
  3.他需要把这颗树上的点以后序遍历的方法列出来,才能绘制地图。
  还好,最近他的属下给了他先序遍历和中序遍历的数据。可是,氰垃圾最近还要帮㊎澤穻解决一些问题,没有时间。请你帮帮他,替他完成这项任务。由于氰垃圾的一些特殊的要求,WYF的参观路线将会是这棵树的后序遍历。
输入格式
  第一行一个整数n,表示一共又n座工厂。
  第二行n个整数,表示先序遍历。
  第三行n个整数,表示中序遍历。
输出格式
  输出共一行,包含n个整数,为后序遍历。
样例输入
8
1 2 4 5 7 3 6 8
4 2 7 5 1 8 6 3
样例输出
4 7 5 2 8 6 3 1
数据规模和约定
  0<n<100000,。保证先序遍历和中序遍历合法,且均为1~n。
题解

题目意思很简单,就是已知二叉树先序和中序求后序。我看了网上大部分的解法,都需要建立二叉树,太复杂了,一定会超时。这种方法使用递归直接输出后序序列。详见代码注释。

#include <cstdio>
#include <iostream>
using namespace std;
int pre[100000], in[100000];
int t = 0;
void getpst(int *pre, int *in, int n) {if(n == 0) return;int root = pre[0];int i;for(i = 0; i < n; i++){if(in[i] == root)//在中序序列中找到根节点break;}//递归找左子树,+1表示跳过根节点getpst(pre + 1,in,i);//递归找右子树,+i表示跳过先序遍历中左子树的部分getpst(pre + i + 1, in + i + 1, n - i - 1);t++;//这一步输出有一点难以理解,我们是按根左右递归下去,所以最后回来时是左右根刚好是后序遍历。if(t == 1)cout << root;elsecout << ' ' << root;return;
}
int main() {int n;cin >> n;int i;for(i = 0; i < n; i++)//输入先序数列scanf("%d", &pre[i]);for(i = 0; i < n; i++)scanf("%d", &in[i]);//输入中序数列getpst(pre, in, n);printf("\n");return 0;
}

求赞,求关注。

蓝桥杯试题 算法训练 绘制地图 C/C++解法 AC(最近,WYF正准备参观他的点卡工厂。WYF集团的经理氰垃圾需要帮助WYF设计参“观”路线。现在,氰垃圾知道一下几件事情。。。。)相关推荐

  1. 蓝桥杯试题 算法训练 绘制地图

    蓝桥杯试题 算法训练 绘制地图 问题描述 最近,WYF正准备参观他的点卡工厂.WYF集团的经理氰垃圾需要帮助WYF设计参"观"路线.现在,氰垃圾知道一下几件事情: 1.WYF的点卡 ...

  2. 蓝桥试题 算法训练 绘制地图 __Java

    问题描述: 最近,WYF正准备参观他的点卡工厂.WYF集团的经理氰垃圾需要帮助WYF设计参"观"路线.现在,氰垃圾知道一下几件事情: 1.WYF的点卡工厂构成一颗二叉树. 2.一共 ...

  3. 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解

    题目: 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的 ...

  4. 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解 - 未完善

    题目: 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的 ...

  5. 蓝桥杯 试题 算法训练 筛选号码 Java

    蓝桥杯 试题 算法训练 筛选号码Java 算法训练 筛选号码 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 有n个人围成一圈,顺序排号(编号为1到n).从第1个人开始报数(从1到3 ...

  6. 蓝桥杯 试题 算法训练 无聊的逗

    蓝桥杯 试题 算法训练 无聊的逗 问题描述 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘 ...

  7. 蓝桥杯试题 算法训练 Have You Ever Heard About the Word?

    试题 算法训练 Have You Ever Heard About the Word? 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 一个字符串的子串是该字符串的一段连续子序列,如 ...

  8. 蓝桥杯试题 算法训练 印章

    试题 算法训练 印章 C/C++ 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 ...

  9. 蓝桥杯试题 算法训练 幂方分解

    试题 算法训练 幂方分解 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 任何一个正整数都可以用2的幂次方表示.例如: 137=27+23+20 同时约定方次用括号来表示,即ab 可 ...

最新文章

  1. python实训心得2000_实训总结万能版2000字五篇
  2. JAVA入门[4]-IntelliJ IDEA配置Tomcat
  3. 人脸识别最前沿在研究什么?
  4. VC++ 定时器基本使用
  5. python数据分析图_Python数据分析:手把手教你用Pandas生成可视化图表的教程
  6. Linux编程 9 (shell类型,shell父子关系,子shell用法)
  7. mysql整点抖动_MySQL 5.5 大量数据插入出现的抖动问题 及 解决方法
  8. uva 11080(二分图染色)
  9. RxJava 2.0的基本使用
  10. C++ Rand()各种实现
  11. cbitmap 从内存中加载jpg_[转载]windows照片查看器无法显示图片内存不足
  12. Spark入门(七)Spark SQL thriftserver/beeline启动方式
  13. 2019计算机科学与技术调剂信息,福建师范大学计算机科学与技术2019考研调剂信息...
  14. 10W人都想知道的答案!可视化黑科技,这4个数据工具谁最厉害的?
  15. Java 设计模式之 Abstract Factory 抽象工厂模式
  16. mysql排序快还是list排序快_2018全国农产品批发市场行业百强排序出炉,快看广西有几个?...
  17. 51单片机复习:外部中断,定时器/计数器中断
  18. Java Ajax技术详解:(一)Ajax 简介
  19. excel转换linux时间戳,在Excel中转换时间戳(timeStamp)
  20. 2.10 lnmp架构_慢查询 MySQL路由器 MHA高可用

热门文章

  1. win7 系统 内存测试软件,win7怎么检测内存 win7系统检测内存的三种方法
  2. python变量名可以包括_python变量名有哪些
  3. ws2812/6810 RGB灯带在高通芯片上的控制
  4. WPF中WindowFormsHost始终置顶的有效解决方案
  5. Windows系统的静态路由配置
  6. 转载 | 万字深度解析 NFT 借贷市场
  7. 自己动手在阿里云服务器上搭建一套zabbix+grafana监控系统
  8. 天翼物联获中国信通院2022 AIoT先锋企业
  9. 使用swiper实现视频和图片混合轮播
  10. JQuery轮播图片效果