团体程序设计天梯赛——玩转二叉树(遍历构造二叉树)
来源:互联网 发布:apache tomcat 8.5.6 编辑:程序博客网 时间:2024/04/30 23:08
给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。
输入格式:
输入第一行给出一个正整数N(\le≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。
输出格式:
在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。
输入样例:
7
1 2 3 4 5 6 7
4 1 3 2 6 5 7
输出样例:
4 6 1 7 5 3 2
想了太久,不过总算是做出来了,要慢慢戒掉看题解的毛病
#include <iostream>#include <cstring>#include <string>#include <vector>#include <queue>#include <cstdio>#include <set>#include <math.h>#include <algorithm>#include <queue>#include <iomanip>#define INF 0x3f3f3f3f#define MAXN 10005#define Mod 123456789using namespace std;struct Node{ int num; Node *lchild,*rchild;};int mid[50],pre[50],n;void build(int l,int r,int pl,Node *&head){ int p=pl; for(int i=l; i<=r; ++i) if(pre[p]==mid[i]) { Node *tree=new Node; tree=head; tree->num=pre[p]; tree->lchild=new Node; tree->rchild=new Node; build(l,i-1,p+1,tree->lchild); build(i+1,r,p+i-l+1,tree->rchild); return; } head=NULL; return;}void print(Node *head){ queue<Node> q; cout<<head->num; if(head->rchild!=NULL) q.push(*(head->rchild)); if(head->lchild!=NULL) q.push(*(head->lchild)); while(!q.empty()) { Node tmp=q.front(); q.pop(); cout<<" "<<tmp.num; if(tmp.rchild!=NULL) q.push(*(tmp.rchild)); if(tmp.lchild!=NULL) q.push(*(tmp.lchild)); }}int main(){ scanf("%d",&n); for(int i=1; i<=n; ++i) scanf("%d",&mid[i]); for(int i=1; i<=n; ++i) scanf("%d",&pre[i]); Node *head=new Node; build(1,n,1,head); print(head); return 0;}
0 0
- 团体程序设计天梯赛——玩转二叉树(遍历构造二叉树)
- 团体程序设计天梯赛-练习集L2-011 玩转二叉树(构造二叉树+BFS)
- 团体程序设计天梯赛L2-011 玩转二叉树
- 团体程序设计天梯赛-练习集 L2-011. 玩转二叉树
- 团体程序设计天梯赛-练习集L2-011. 玩转二叉树
- L2-011. 玩转二叉树-PAT团体程序设计天梯赛GPLT
- 团体程序设计天梯赛-练习集 L2-011. 玩转二叉树 解题报告
- L2-011. 玩转二叉树-PAT团体程序设计天梯赛GPLT
- CCCC团体天梯赛-树的遍历 + 玩转二叉树
- 【天梯赛】L2-011. 玩转二叉树 ( 层次遍历 )
- 团体程序设计天梯赛L2-004 这是二叉搜索树吗?(数据结构)
- 团体程序设计天梯赛-练习集 -- L3-016. 二叉搜索树的结构(模拟)
- 天梯赛 L2-011. 玩转二叉树(数据结构)
- 团体程序设计天梯赛-练习集 L2-4. 这是二叉搜索树吗? 区间递归
- 团体程序设计天梯赛-练习集 L2-004. 这是二叉搜索树吗?GU
- 团体程序设计天梯赛-练习集L2-004. 这是二叉搜索树吗
- 团体程序设计天梯赛-练习集 -- L3-010. 是否完全二叉搜索树
- PAT-团体程序设计天梯赛-练习集- L3-010 是否完全二叉搜索树【三星级】
- iOS进阶8--- 直播
- Ionic系列——修改应用图标和启动页
- IFE_02_dynamicDataBinding_03
- 正则
- Linux_shell_bash语言
- 团体程序设计天梯赛——玩转二叉树(遍历构造二叉树)
- Mysql 子查询 用limit
- My97DatePicker日期插件的使用
- SQL Server附加数据库拒绝访问解决方法汇总
- Hive基于搜狗搜索的用户日志行为分析
- 面试篇------性能测试+调优
- C# 窗口传递信息
- HashMap的工作原理
- 遍历HashMap