杭电1710 (已知二叉树前中序 求后序)
#include "iostream"
#include "stack"
using namespace std;
int result[1001];
int cnt;
/* 得到后序序列 */
void getPost(int* pre,int* in,int len) { /* 分别记录当前处理二叉树的前序 后序 和 长度*/if (len == 0) /* 前序序列长度为0 直接返回*/return; result[cnt++] = pre[0]; /* 将前序的第一个节点 即当前二叉树的根进入结果数组存储 */int i;for (i = 0; in[i] != pre[0]; i++);getPost(pre+i+1,in+i+1,len-i-1); /* 先递归处理右子树 因为结果要按后序的逆序存储 即为根右左 */getPost(pre+1,in,i); /* 递归处理左子树 */}int main() {int n;int pre[1001], inOrder[1001];while (cin >> n) {cnt = 0;for (int i = 0; i < n; i++)cin >> pre[i];for (int j = 0; j < n; j++) {cin >> inOrder[j];}getPost(pre, inOrder, n);for (int i = n - 1; i >= 0; i--) {if (i == n - 1)cout << result[i];elsecout << " " << result[i];}cout << endl;}return 0;
}
转载于:https://www.cnblogs.com/minesweeper/p/5911206.html
杭电1710 (已知二叉树前中序 求后序)相关推荐
- POJ 2255/递归:前序中序求后序
Sample Input DBACEGF ABCDEFG 已知二叉树的前序遍历与后序遍历求后序遍历 算法:前序遍历时,第一位为根:D:找到中序中的D,则前面的ABC在左子树,右边的EFG在右子树,则后 ...
- 二叉树的遍历(前序、中序、后序、已知前中序求后序、已知中后序求前序)
二叉树的遍历(前序.中序.后序.已知前中序求后序.已知中后序求前序) 之前的一篇随笔(二叉树.前序遍历.中序遍历.后序遍历)只对二叉树的遍历进行了笼统的描述,这篇随笔重点对前.中.后序的遍历顺序进 ...
- 二叉树已知前序中序求后序(超简单)(java)
首先解题思路来自b站某高手,思路清奇,请看官先看视频: 无脑秒解!已知先/后序遍历与中序遍历,求后/先序遍历._哔哩哔哩_bilibili大佬轻喷,这个题做很简单,但是想做的快做的准应该没有比这更快的 ...
- PAT甲级1020变体:已知二叉树层序+中序序列,求后序遍历序列
PAT甲级1020变体:已知二叉树层序+中序序列,求后序遍历序列 题目 输入格式 输出格式 输入样例 输出样例 代码 题目 已知二叉树层序+中序序列,求后序遍历序列. 输入格式 第一行给出该二叉树的节 ...
- 二叉树:已知先序和中序求后序,已知中序和后序求先序
树的三种遍历方式的遍历顺序: 先序遍历:根.左子树.右子树(特点:第一个元素为根) 中序遍历:左子树.根.右子树(特点:根的两边分别为左子树和右子树) 后序遍历:左子树.右子树.根(特点:最后一个元素 ...
- 二叉树面试题:前中序求后序、中后序求前序
在面试时,避免不了的会遇到一些数据结构的面试题,今天我们就来了解一下二叉树的经典面试题: 已知二叉树的前序遍历顺序为ABDCEGHF,中序遍历顺序为DBAGEHCF,求该二叉树的后序遍历. 还有: 已 ...
- 二叉树知道前序和中序求后序,知道中序后序求中序
今天来总结下二叉树前序.中序.后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明. 首先,我们看 ...
- 根据先序和中序求后序,注意递归终止条件
#include "stdafx.h" #include <iostream> #include <string> using namespace std; ...
- 已知二叉树:先序和中序求后序/后序和中序求先序
P1030 [NOIP2001 普及组] 求先序排列 # [NOIP2001 普及组] 求先序排列 ## 题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示, ...
最新文章
- 一些有用的Python问题
- Qcom LK阶段如何使用ADC介绍
- pip安装pandas失败Could not find a version that satisfies the requirement pandas
- Comet OJ - Contest #0
- 转:Java并发编程与高并发解决方案(一)
- java 方法 示例_Java集合syncedSortedSet()方法与示例
- 使用wireshark+ssh+tcpdump远程抓包
- golang python扩展_Python 利用Go语言编写 CPython 扩展 goPy的简单示例
- Python问题记录:如何处理中文网页中的多余空格
- 无限递归替换文件内的某个字符串
- 艺术创意灵感地---集设网 | 人体彩绘的张力
- python埋点测试_测试一面(宇宙条)
- C++编程技术常见问题有哪些?
- 全屏模式fullscreen
- 【3D游戏建模全流程教学】使用3dsmax与UE4制作世界末日地铁场景
- 石墨烯海水淡化lammps模拟建模方法
- 高尚品质_心理学家:品德高尚的人一定具有这6点特征
- Python表白代码:“ 星光月夜烟花皆归你,我也归你”
- Ubuntu下编译OpenHarmony
- unity屏幕渐变黑白效果
热门文章
- gitblit无法启动服务
- c++命令行解析库cmdline使用
- iptables学习笔记:同一端口号同时支持tcp和udp的转发
- 在图片中添加自己的文本信息(PNG及JPEG格式)
- java实现发送QQ邮件
- mybatis 取查询值_Oracle结合Mybatis实现取表TOP 10条数据
- 【ElasticSearch 】ElasticSearch监控工具 cerebro
- 【Ranger】mac下Apache Ranger编译安装
- Rabbitmq的三种方式
- SpringBoot 操作 Redis的各种实现(以及Jedis、Redisson、Lettuce的区别比较)