团体程序设计天梯赛-练习集 L2-006 树的遍历 根据后序中序建树+BFS
来源:互联网 发布:c语言的广泛应用 编辑:程序博客网 时间:2024/05/01 01:09
L2-006. 树的遍历
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越
给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。
输入格式:
输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。
输出格式:
在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。
输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:
4 1 6 3 5 7 2
#include <cstdio>#include <cstring>#include <iostream>#include <map>#include <algorithm>#include <queue>using namespace std;const int maxn = 30;int a[maxn + 10], b[maxn + 10];map<int, int>L, R; //L[i]表示i的左子节点,R[i]表示i的右子节点//当前考虑的是后序遍历[la, ra]区间和对应的中序遍历[lb,rb]区间int build(int la, int ra, int lb, int rb) {if (la > ra) { //越界判断return 0;}int root = a[ra]; //后序遍历右一肯定是根int i;for (i = lb; i <= rb && b[i] != root; i++) {} //在中序遍历中找到这个节点下标iif (i <= rb) { //递归分治R[root] = build(ra - rb + i, ra - 1, i + 1, rb);L[root] = build(la, ra - rb + i - 1, lb, i - 1);}return root;}void bfs(int root) {queue<int> Q;Q.push(root);int cnt = 0;while (!Q.empty()) {int tn = Q.front(); Q.pop();printf(cnt++ == 0 ? "%d" : " %d", tn);if (L[tn]) {Q.push(L[tn]);}if (R[tn]) {Q.push(R[tn]);}}puts("");}int main(){int N;scanf("%d", &N);for (int i = 1; i <= N; i++) {scanf("%d", &a[i]);}for (int i = 1; i <= N; i++) {scanf("%d", &b[i]);}int root = build(1, N, 1, N);bfs(root);return 0;}
0 0
- 团体程序设计天梯赛-练习集 L2-006 树的遍历 根据后序中序建树+BFS
- 团体程序设计天梯赛L2-006 树的遍历
- PAT 团体程序设计天梯赛-练习集 L2-006. 树的遍历【数据结构】
- 团体程序设计天梯赛-练习集 L2-006. 树的遍历
- 团体程序设计天梯赛-练习集L2-006. 树的遍历
- PAT 团体程序设计天梯赛-练习集 L2-006. 树的遍历
- 团体程序设计天梯赛-练习集 L2-006. 树的遍历 解题报告
- 团体程序设计天梯赛L2-006 树的遍历(数据结构)
- 团体程序设计天梯赛-练习集L2-011 玩转二叉树(构造二叉树+BFS)
- 团体程序设计天梯赛-练习集 L2-3. 月饼 贪心
- 团体程序设计天梯赛-练习集 L2-002
- 团体程序设计天梯赛-练习集 L2-007 家庭房产
- 团体程序设计天梯赛-练习集 L2-005
- 团体程序设计天梯赛-练习集 L2-002. 链表去重
- 团体程序设计天梯赛-练习集 L2-003. 月饼LOVE
- 团体程序设计天梯赛-练习集 L2-007. 家庭房产
- 团体程序设计天梯赛-练习集 L2-009. 抢红包
- 团体程序设计天梯赛-练习集 L2-010. 排座位
- CoreLocation Authorization in iOS8+
- 解决Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- 摇一摇
- host切换神器 firfox hostadmin
- 商务英语学习
- 团体程序设计天梯赛-练习集 L2-006 树的遍历 根据后序中序建树+BFS
- 块状链表
- (礼拜二log)java 构建层级关系的递归算法
- AEAI WM V1.5.0 升级说明,开源工作管理系统
- arcgis组件式开发中,从9.3升级为10.1系统不能调试的说明
- 架构的本质
- One function to run them all… Or just eval
- SCU OJ_4444_ Travel_最短路(大数据)
- Shell 实现多任务并发