HLG2040二叉树遍历已知前中,求后
二叉树的遍历 | ||||||
|
||||||
Description | ||||||
给出一棵二叉树的中序和前序遍历,输出它的后序遍历。 | ||||||
Input | ||||||
本题有多组数据,输入处理到文件结束。 每组数据的第一行包括一个整数n,表示这棵二叉树一共有n个节点。 接下来的一行每行包括n个整数,表示这棵树的中序遍历。 接下来的一行每行包括n个整数,表示这棵树的前序遍历。 3<= n <= 100 |
||||||
Output | ||||||
每组输出包括一行,表示这棵树的后序遍历。 | ||||||
Sample Input | ||||||
7 4 2 5 1 6 3 7 1 2 4 5 3 6 7 |
||||||
Sample Output | ||||||
4 5 2 6 7 3 1 | ||||||
Source | ||||||
2014 Winter Holiday Contest 5 |
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
int n,num=0;
int kmp(int root,int str2[])
{
int s=0;
while(1)
{
if(str2[s]==root)
return s;
s++;
}
return 0;
}
void calculate(int m,int str1[],int str2[],int str3[] )
{
if(m<=0)
return ;
int len=kmp(str1[0],str2);
calculate(len,str1+1,str2,str3);
calculate(m-len-1,str1+len+1,str2+len+1,str3);
str3[num++]=str1[0];
}
int main()
{
int n;
int str1[105],str2[105],str3[105];
while(scanf("%d",&n)!=EOF)
{
num=0;
memset(str1,0,sizeof(str1));
memset(str2,0,sizeof(str2));
memset(str3,0,sizeof(str3));
for(int i=0;i<n;i++)
scanf("%d",&str2[i]);
for(int i=0;i<n;i++)
scanf("%d",&str1[i]);
calculate(n,str1,str2,str3);
for(int i=0;i<n;i++)
printf("%d ",str3[i]);
printf("\n");
}
return 0;
}
转载于:https://www.cnblogs.com/13224ACMer/p/4428093.html
HLG2040二叉树遍历已知前中,求后相关推荐
- 二叉树的遍历(前序、中序、后序、已知前中序求后序、已知中后序求前序)
二叉树的遍历(前序.中序.后序.已知前中序求后序.已知中后序求前序) 之前的一篇随笔(二叉树.前序遍历.中序遍历.后序遍历)只对二叉树的遍历进行了笼统的描述,这篇随笔重点对前.中.后序的遍历顺序进 ...
- 二叉树遍历(递归实现前序/中序/后序遍历)
1. 准备工作 我们先定义一棵普通的二叉树,如下图 2. 前序遍历 通过递归进行遍历: 如果二叉树为空,则操作返回: 如果非空,否则从根结点开始,然后遍历左子树,再遍历右子树. 前序遍历的结果是:AB ...
- 【C】编一程序。求两点之间的距离,已知直角坐标系中求两点(x1,y1),(x2,y2)之间的距离。
int main() {int x1,x2,y1,y2,d;printf("请输入1坐标(x1,y1):");scanf("%d%d",&x1,& ...
- 二叉树面试题:前中序求后序、中后序求前序
在面试时,避免不了的会遇到一些数据结构的面试题,今天我们就来了解一下二叉树的经典面试题: 已知二叉树的前序遍历顺序为ABDCEGHF,中序遍历顺序为DBAGEHCF,求该二叉树的后序遍历. 还有: 已 ...
- 二叉树已知前序中序求后序(超简单)(java)
首先解题思路来自b站某高手,思路清奇,请看官先看视频: 无脑秒解!已知先/后序遍历与中序遍历,求后/先序遍历._哔哩哔哩_bilibili大佬轻喷,这个题做很简单,但是想做的快做的准应该没有比这更快的 ...
- 已知空间中的三点 求三角形面积_【气宇轩昂】解三角形最值问题的四大模型尤其是第四种模型,简直不要太赞哦!!!...
点击上方蓝色字体"高中数学王晖"关注王晖老师,免费获取各种知识干货和学习经验~~~您的点赞转发是对老师的最大鼓舞~~~ 距高考还有262天 1 三角函数有界性 在三角函数中,正弦函 ...
- 给定数组,每个元素代表一个木头的长度,木头可以任意截断, 从这堆木头中截出至少k个相同长度为m的木块,已知k,求max(m)
给定数组,每个元素代表一个木头的长度,木头可以任意截断, 从这堆木头中截出至少k个相同长度为m的木块,已知k,求max(m) [9, 4, 3, 10, 7] k = 5 max(m) = ? pub ...
- 树的基本概念和遍历规则 数据结构和算法 二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)
zsychanpin 博客园 首页 新随笔 联系 订阅 管理 树的基本概念和遍历规则 树的递归定义 树是n(n>0)个结点的有限集,这个集合满足下面条件: ⑴有且仅有一个结点没有前驱 ...
- 已知网络号求子网掩码c语言,已知ip地址求子网掩码 - 已知ip地址求子网掩码_已知ip地址和子网掩码求网络号、子网号和主机号...
已知ip地址求子网掩码的方法: 方法一:利用子网数来计算: 1.首先,将子网数目从十进制数转化为二进制数: 2.接着,统计得到的二进制数的位数,设为N: 3.最后,先求出此IP地址对应的地址类别的子网 ...
最新文章
- JAVA swing初级教程(四)
- 完美解决api-ms-win-crt-runtime-l1-1-0.dll 丢失问题
- C#后台访问前台Html控件的方法
- redis数据库各种数据类型的增删改查命令
- Hadoop报错:All specified directories are failed to load.
- 用python设计学生管理系统_Django实现学生管理系统实例分享
- 火狐 新增标签 一直加载_在Firefox的新标签页中加载最后标签页的URL
- 说说mysql_说说MySQL权限 - andyqian的个人空间 - OSCHINA - 中文开源技术交流社区
- 作者:谭昊翔(1990-),男,华南师范大学计算机学院硕士生。
- Decoda Tutorial LUA调式器
- Netty之大动脉Pipeline
- 薰衣草紫色调人像lr/ps/luts预设
- Java用WebSocket + tail命令实现Web实时日志
- GJB150军用设备环境(霉菌、淋雨、湿热、盐雾、冲击)试验
- YOLO学习笔记4——YOLOV2详解+论文解读
- 两台计算机如何连接一个网络打印机共享,打印机怎么连接2台电脑?两台或多台电脑连接共享打印机操作方法...
- 3DMAX渲染时,vray渲染有光斑、噪点?几招就解决。
- NPOJ 1065 喵星人吃土豆
- flutter 使用MD5加密
- 河南省谷歌地球高程DEM等高线下载
热门文章
- es对分组后结果进行统计_ElasticSearch里面如何分组后根据sum值排序
- 妙啊,这条命令可以查出哪些端口被防火墙阻止了
- 【趣说】IT人的职场艰难,全藏在气氛组里!
- 4/8 Serverless 技术实践营成都站持续报名中
- mysql 符_mysql命令操作符
- 配置apache2目录
- 微型计算机原理与接口技术教材,微型计算机原理与接口技术(修订本)(21世纪高职高专规划教材....
- kinana 清空索引数据_(Elasticsearch)实战Elasticseartch、Logstash、Kibana
- qpython3调用adb_Python实现的基于ADB的Android远程工具
- python画图y轴在右侧_解决python中画图时x,y轴名称出现中文乱码的问题