PAT-1127. ZigZagging on a Tree (30)

1127. ZigZagging on a Tree (30)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue
Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can be determined by a given pair of postorder and inorder traversal sequences. And it is a simple standard routine to print the numbers in level-order. However, if you think the problem is too simple, then you are too naive. This time you are supposed to print the numbers in "zigzagging order" -- that is, starting from the root, print the numbers level-by-level, alternating between left to right and right to left. For example, for the following tree you must output: 1 11 5 8 17 12 20 15.


Input Specification:

Each input file contains one test case. For each case, the first line gives a positive integer N (<= 30), the total number of nodes in the binary tree. The second line gives the inorder sequence and the third line gives the postorder sequence. All the numbers in a line are separated by a space.

Output Specification:

For each test case, print the zigzagging sequence of the tree in a line. All the numbers in a line must be separated by exactly one space, and there must be no extra space at the end of the line.

Sample Input:
8
12 11 20 17 1 15 8 5
12 20 17 11 15 8 5 1
Sample Output:

1 11 5 8 17 12 20 15



题意就是要按照给定的中序遍历和后续遍历顺序输出树的蛇形遍历序列 


我们可以先还原出树 然后在把树dfs一遍 推出每层的节点有多少  记录下来 在用一个bfs搞出层序遍历存到vector里

 然后再根据每层的节点数  把vector里响应的元素reverse!


CODE:

#include<bits/stdc++.h>
#include<vector>
using namespace std;
int in[35];
int post[35];
int flo[30];
typedef struct node
{int key;node *l,*r;node(int k):key(k),l(NULL),r(NULL){}
}NN,*NNN;
NNN devide(int l,int r,int pl,int pr)
{int i,k=post[pr],left,right;for(i=l;in[i]!=k&&i<=r;i++);//lack ;left = i-l;right = r-i;NNN p = (NNN)malloc(sizeof(NN));p->key=k;p->l=p->r=NULL;if(right!=0)p->r=devide(i+1,r,pr-right,pr-1);if(left!=0)p->l=devide(l,i-1,pl,pr-right-1);return p;
}void preorder(NNN p)
{if(p){printf("%d ",p->key);preorder(p->l);preorder(p->r);}
}
int flor;
void dfs(NNN rt,int f)
{if(rt){flo[f]++;dfs(rt->l,f+1);dfs(rt->r,f+1);flor=max(flor,f);}
}
vector<int>res;
void bfs(NNN rt)
{queue<NNN>q;q.push(rt);while(q.size()) {NNN a = q.front();q.pop();int t = a->key;res.push_back(t);if(a->l!=NULL)q.push(a->l);if(a->r!=NULL)q.push(a->r);}
} 
int main()
{int n;cin>>n;for(int i=1;i<=n;i++)scanf("%d",&in[i]);for(int i=1;i<=n;i++)scanf("%d",&post[i]);NNN rt;rt=devide(1,n,1,n);dfs(rt,1); bfs(rt);int sum=0;vector<int>::iterator ss;vector<int>::iterator ee;for(int i=1;i<=flor;i++){if(i%2==1){ss=res.begin();for(int j=0;j<sum;j++,ss++);ee=ss;			for(int j=0;j<flo[i];j++,ee++);reverse(ss,ee);}sum+=flo[i];}for(int i=0;i<n;i++){cout<<res[i];if(i==n-1)cout<<endl;else cout<<" ";}return 0;
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.jsp初识

目录 什么是jsp jsp的特点 早期的网站一般是用标准的HTML文件也 就是静态网页制作的&#xff0c;通常没有后台数据库、 不能和用户交互&#xff0c;内容更新起来相对也比较 麻烦&#xff0c;适用于一些不需要经常更新的展示型 网站。而动态网页上显示的内容不是固定的&#x…

武大计算机专业湖北录取分数线,武汉大学2020年本科一批分专业录取分数统计(湖北省)...

2020年高考已经过去&#xff0c;为给2021年的高考生们提供一些报考资料&#xff0c;我们将逐一推出一些重点大学在全国各省分专业的录取分数。本文先介绍武汉大学2020年在湖北省本科一批的录取情况。武汉大学始建于1893年&#xff0c;是国家教育部直属重点大学&#xff0c;国家…

[Leedcode][JAVA][第210 题][课程表 II][拓扑排序][BFS][DFS][有向图]

【问题描述】[第210 题][课程表 II][中等] 现在你总共有 n 门课需要选&#xff0c;记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如&#xff0c;想要学习课程 0 &#xff0c;你需要先完成课程 1 &#xff0c;我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的…

牛客小白月赛11 Rinne Loves Xor

题目链接&#xff1a;https://ac.nowcoder.com/acm/contest/370/I code: #include<bits/stdc.h> using namespace std; typedef unsigned long long ll; ll mod1e97; ll pow(ll x,ll n,ll mod) {ll res1;while(n>0){if(n%21){resres*x;resres%mod;}xx*x;xx%mod;n>&…

HDU - 2571 

穿过幽谷意味着离大魔王lemon已经无限接近了&#xff01; 可谁能想到&#xff0c;yifenfei在斩杀了一些虾兵蟹将后&#xff0c;却再次面临命运大迷宫的考验&#xff0c;这是魔王lemon设下的又一个机关。要知道&#xff0c;不论何人&#xff0c;若在迷宫中被困1小时以上&#xf…

3.JSP开发探秘

目录 1JSP工作原理 2JSP设计模式 3JSP开发方式 用户通过浏览器提交请求&#xff0c;服务器端收到请求后进行处理&#xff0c;再以HTML的形式把处理结果返 回给客户端&#xff0c;客户端通过浏览器查看得到的静态网页。 如果JSP程序是第一次被加载&#xff0c;会首先被编…

新疆农业大学计算机科学与技术专业怎么样,新疆农业大学计算机科学与技术专业2016年在新疆理科高考录取最低分数线...

类似问题答案新疆农业大学科学技术学院计算机科学与技术专业2016年在新疆理科高考录取最低分数线...学校 地 区 专业 年份 批次 类型 分数 新疆农业大学科学技术学院 新疆 计算机科学与技术 2016 三批 理科 360 学校 地 区 专业 年份 批次 类型 分数 新疆农业大学科学技术学院 …

[Leedcode][JAVA][第152题][乘积最大子数组][动态规划]

【问题描述】[中等] 给你一个整数数组 nums &#xff0c;请你找出数组中乘积最大的连续子数组&#xff08;该子数组中至少包含一个数字&#xff09;&#xff0c;并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2:输入:…

cf1108E2 线段树类似扫描线

/* 有点像扫描线 思路&#xff1a;从左到右枚举每个点&#xff0c;枚举到点i时&#xff0c;把所有以i为起点的区间的影响删去 再加上以i-1为结尾的区间的影响 */ #include<bits/stdc.h> using namespace std; #define maxn 200005 #define lson l,m,rt<<1 #defin…

4.与JSP的第一次握手

做一个简单的JSP页面&#xff0c;并用浏览器运行。 打开NetBeans&#xff0c;创建Java Web项目 创建JSP文件 修改JSP文件 <h3>JSP技术带你进入动态网页时代&#xff01;</h3> <!--在JSP页面中进行变量声明--> <% String st"我将成为一名…

九歌计算机在线作诗硬件原理,“九歌”作诗是如何炼成的?

原标题&#xff1a;“九歌”作诗是如何炼成的&#xff1f;你有木有为研究数据的处理一筹莫展&#xff1f;你有木有为课题方法的突破绞尽脑汁&#xff1f;你有木有为完美的宣传文案纠结犯难&#xff1f;亲&#xff0c;是该来一杯清华学术咖啡&#xff0c;约会“信息达人”了&…

WEB_头等舱

题目链接&#xff1a;http://123.206.87.240:9009/hd.php 题解&#xff1a; 打开题目&#xff0c;什么也没有 查看网页源代码&#xff0c;真的什么也没有 于是采用burp进行抓包&#xff0c;burp工具下载链接&#xff1a;https://pan.baidu.com/s/1daOvlBo-pU2k9WYBN_5EQQ 右键&…

[Leedcode][JAVA][第105题][从前序与中序遍历序列构造二叉树][栈][递归][二叉树]

【问题描述】[中等] 根据一棵树的前序遍历与中序遍历构造二叉树。注意: 你可以假设树中没有重复的元素。例如&#xff0c;给出前序遍历 preorder [3,9,20,15,7] 中序遍历 inorder [9,3,15,20,7] 返回如下的二叉树&#xff1a;3/ \9 20/ \15 7【解答思路】 1. 递归 先序…

登录页面实现

实现登录页面 打开NetBeans&#xff0c;创建Java Web项目 <hr><hr> <form name"" action "" method"post"> <table border"1"> <tr> <td>用户名&#xff1a;</td> …

html和css可以用在ssh里面么,在网站中使用SSH

嗨&#xff0c;我目前正在制作自己的软件来控制一个带有Raspberry Pi的机器人。我想知道是否可以将ssh嵌入到HTML代码中&#xff0c;因此当用户输入Pi的IP地址时&#xff0c;它将通过ssh连接到pi。在网站中使用SSH然后我想要做的是通过ssh发送命令&#xff0c;当他们点击一个按…

JSP环境简介

JSP环境简介 最低环境需求 JDK jdk的安装和配置

[IOI2018] werewolf 狼人

[IOI2018] werewolf 狼人 IOI2018题解 &#xff08;其实原题强制在线&#xff0c;要用主席树&#xff09; 代码&#xff1a; 注意&#xff1a; 1.下标从0~n-1 2.kruskal重构树开始有n个节点&#xff0c;tot从n开始&#xff0c;tot #include<bits/stdc.h> #define reg reg…

[Leedcode][JAVA][第680题][验证回文字符串Ⅱ][贪心][递归]

【问题描述】[第680题][验证回文字符串Ⅱ][简单] 给定一个非空字符串 s&#xff0c;最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba" 输出: True 示例 2:输入: "abca" 输出: True 解释: 你可以删除c字符。 注意:字符串只包含从 a-z 的小…

目前微型计算机的内存储量一般是多大的,微型计算机内存容量的大小一般是指什么而言...

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。微型计算机内存容量的大小一般是指RAM。随机存取存储器是与CPU直接交换数据的内部存储器&#xff0c;也叫主存(内存)。它可以随时读写&#xff0c;而且速度很快&#xff0c;通常作为…

html:(2):制作第一个网页和html和css的关系

在<h1>和</h1>标签之间&#xff0c;输入Hello World 字符串。 <!DOCTYPE HTML> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"><title>制作我的第一个网页</title><…