PTA L2-011 玩转二叉树 (镜像反转)
来源:互联网 发布:iphone7plus软件铃声 编辑:程序博客网 时间:2024/05/18 15:08
L2-011. 玩转二叉树
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越
给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。
输入格式:
输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。
输出格式:
在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。
输入样例:71 2 3 4 5 6 74 1 3 2 6 5 7输出样例:
4 6 1 7 5 3 2
分析: 镜像反转二叉树只需在先序和中序恢复二叉树时,将左(右)子树赋值为理论上原来的的右(左)子树即可。
#include <iostream>#include <sstream>#include <cstring>#include <cstdio>#include <cctype>#include <cmath>#include <map>#include <set>#include <list>#include <queue>#include <deque>#include <stack>#include <vector>#include <algorithm>#define inf 0x3f3f3f3f#define PI 3.14159265358979323#define SCD(a) scanf("%d",&a)#define SCDD(a,b) scanf("%d%d",&a,&b)#define SCF(a) scanf("%lf",&a)#define PTD(a) printf("%d\n",a)#define PTS(a) printf("%s\n",a)#define MST(a) memset(a, 0, sizeof(a))using namespace std;// PTA L2 - 011const int L = 100001;int n, m;struct BiTNode{ int data; BiTNode* lchild; BiTNode* rchild;};BiTNode* T;BiTNode* Pre_In(const int* pre,const int* in,int n){ if(n==0) return NULL; BiTNode* head = new BiTNode; head->data = pre[0]; int i; for(i=0;i<n;i++){ if(pre[0]==in[i]) break; } head->rchild = Pre_In(pre+1, in, i); head->lchild = Pre_In(pre+i+1,in+i+1, n-i-1); return head;}bool flag = true;void LevelTraverse(BiTNode* &T){ queue<BiTNode*> q; BiTNode* p = new BiTNode; if(T) p = T; q.push(p); while(!q.empty()){ p = q.front(); q.pop(); if(flag){ printf("%d",p->data); flag = false; }else{ printf(" %d",p->data); } if(p->lchild) q.push(p->lchild); if(p->rchild) q.push(p->rchild); }}int main(){ int i; SCD(n); int pre[L]; int in[L]; for(i=0;i<n;i++) SCD(in[i]); for(i=0;i<n;i++) SCD(pre[i]); T = Pre_In(pre, in, n); LevelTraverse(T); return 0;}/*输入样例:71 2 3 4 5 6 74 1 3 2 6 5 7输出样例:4 6 1 7 5 3 2*/
阅读全文
1 0
- PTA L2-011 玩转二叉树 (镜像反转)
- L2-011. 玩转二叉树&&镜面反转
- PTA-玩转二叉树
- PAT L2-011 玩转二叉树
- L2-011 玩转二叉树
- L2-011 玩转二叉树
- PTA 一 玩转二叉树
- 天梯赛 L2-011 玩转二叉树 数据结构
- 团体程序设计天梯赛L2-011 玩转二叉树
- 天梯赛 L2-011. 玩转二叉树(数据结构)
- L2-011. 玩转二叉树
- L2-011. 玩转二叉树
- L2-011. 玩转二叉树
- PAT L2-011. 玩转二叉树
- L2-011. 玩转二叉树
- L2-011. 玩转二叉树
- L2-011. 玩转二叉树
- pat L2-011. 玩转二叉树@
- python基础教程视频下载
- v-c
- AJAX学习笔记一
- 深度学习笔记---权重初始化
- TensorFlow安装
- PTA L2-011 玩转二叉树 (镜像反转)
- 浅谈三层架构与MVC
- 在.NET MVC下不用iframe实现局部加载html
- JS-Elementary2017-07-28
- 【支付宝】余额宝团队招聘
- linux进程利用mmap映射区通信
- ListView动态模糊搜索显示ArrayList数据
- ssh暴力破解
- tarjin+dfs 杀人游戏