CCCC/GPLT L2-006 树的遍历
来源:互联网 发布:知行小学和中学怎么样 编辑:程序博客网 时间:2024/06/05 18:44
题目重现
给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。
输入格式
输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。
输出格式
在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。
输入样例
72 3 1 5 7 6 41 2 3 4 5 6 7
输出样例
4 1 6 3 5 7 2
题解
首先是一个树的重建问题:利用后序、中序重建二叉树。
然后用BFS从树根开始搜索输出即可。
递归的树重建算法是深度优先的,所以必然要真实地建出这棵树。
但是如果一开始就结合用队列(BFS)来做就不需要真的去建树。
队列中的每个节点要存储4个值:后序起点、后序终点、中序起点、中序终点
起点、终点所构造的区间是一个左闭右开区间。
初始化时向队列中推送(0, N, 0, N)。
每次从队列中取出节点计算出当前树根,直接输出。
其余做法与一般的树重建一样。
代码示例
- CCCC/GPLT L2-006
0 0
- CCCC/GPLT L2-006 树的遍历
- GPLT L2-006. 树的遍历【递归建树+bfs输出】
- gplt L2-006. 树的遍历(后序中序求层序)
- CCCC/GPLT L2-010 排座位
- L2-006. 树的遍历-PAT团体程序设计天梯赛GPLT
- CCCC-GPLT L2-017. 人以群分 团体程序设计天梯赛
- [PAT][GPLT][CCCC]L2-001. 紧急救援 Dijkstra变形
- CCCC/GPLT L1-006 连续因子
- CCCC练习 5-10树的遍历
- gplt L2-011. 玩转二叉树(二叉树遍历)
- PAT L2-006 树的遍历
- L2-006. 树的遍历
- L2-006. 树的遍历
- L2-006. 树的遍历
- L2-006. 树的遍历
- L2-006. 树的遍历
- L2-006. 树的遍历
- L2-006. 树的遍历
- 数据库事务的隔离级别
- 嵌入式GUI方案选择
- xml解析(SAX)
- FreeSwitch Lua Welcome IVR
- greenplum 批量导入mysql 数据库数据
- CCCC/GPLT L2-006 树的遍历
- Linux 下获取目录a下文件b的操作
- Spring MVC 学习总结
- Js bind\live\delegate\on 事件绑定方式
- Linux进程间通信(IPC)
- ERROR:a label can only be part of a statement and a declaration is not a statement
- react项目实战【1】react基本知识
- Linux任务前后台的切换
- html5解决大文件断点续传