二叉树的遍历
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 60(34 users) Total Accepted: 34(30 users) Rating: Special Judge: No
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. 二叉树遍历(递归实现前序/中序/后序遍历)

    1. 准备工作 我们先定义一棵普通的二叉树,如下图 2. 前序遍历 通过递归进行遍历: 如果二叉树为空,则操作返回: 如果非空,否则从根结点开始,然后遍历左子树,再遍历右子树. 前序遍历的结果是:AB ...

  3. 【C】编一程序。求两点之间的距离,已知直角坐标系中求两点(x1,y1),(x2,y2)之间的距离。

    int main() {int x1,x2,y1,y2,d;printf("请输入1坐标(x1,y1):");scanf("%d%d",&x1,& ...

  4. 二叉树面试题:前中序求后序、中后序求前序

    在面试时,避免不了的会遇到一些数据结构的面试题,今天我们就来了解一下二叉树的经典面试题: 已知二叉树的前序遍历顺序为ABDCEGHF,中序遍历顺序为DBAGEHCF,求该二叉树的后序遍历. 还有: 已 ...

  5. 二叉树已知前序中序求后序(超简单)(java)

    首先解题思路来自b站某高手,思路清奇,请看官先看视频: 无脑秒解!已知先/后序遍历与中序遍历,求后/先序遍历._哔哩哔哩_bilibili大佬轻喷,这个题做很简单,但是想做的快做的准应该没有比这更快的 ...

  6. 已知空间中的三点 求三角形面积_【气宇轩昂】解三角形最值问题的四大模型尤其是第四种模型,简直不要太赞哦!!!...

    点击上方蓝色字体"高中数学王晖"关注王晖老师,免费获取各种知识干货和学习经验~~~您的点赞转发是对老师的最大鼓舞~~~ 距高考还有262天 1 三角函数有界性 在三角函数中,正弦函 ...

  7. 给定数组,每个元素代表一个木头的长度,木头可以任意截断, 从这堆木头中截出至少k个相同长度为m的木块,已知k,求max(m)

    给定数组,每个元素代表一个木头的长度,木头可以任意截断, 从这堆木头中截出至少k个相同长度为m的木块,已知k,求max(m) [9, 4, 3, 10, 7] k = 5 max(m) = ? pub ...

  8. 树的基本概念和遍历规则 数据结构和算法 二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)

    zsychanpin 博客园 首页 新随笔 联系 订阅 管理 树的基本概念和遍历规则 树的递归定义 树是n(n>0)个结点的有限集,这个集合满足下面条件:       ⑴有且仅有一个结点没有前驱 ...

  9. 已知网络号求子网掩码c语言,已知ip地址求子网掩码 - 已知ip地址求子网掩码_已知ip地址和子网掩码求网络号、子网号和主机号...

    已知ip地址求子网掩码的方法: 方法一:利用子网数来计算: 1.首先,将子网数目从十进制数转化为二进制数: 2.接着,统计得到的二进制数的位数,设为N: 3.最后,先求出此IP地址对应的地址类别的子网 ...

最新文章

  1. JAVA swing初级教程(四)
  2. 完美解决api-ms-win-crt-runtime-l1-1-0.dll 丢失问题
  3. C#后台访问前台Html控件的方法
  4. redis数据库各种数据类型的增删改查命令
  5. Hadoop报错:All specified directories are failed to load.
  6. 用python设计学生管理系统_Django实现学生管理系统实例分享
  7. 火狐 新增标签 一直加载_在Firefox的新标签页中加载最后标签页的URL
  8. 说说mysql_说说MySQL权限 - andyqian的个人空间 - OSCHINA - 中文开源技术交流社区
  9. 作者:谭昊翔(1990-),男,华南师范大学计算机学院硕士生。
  10. Decoda Tutorial LUA调式器
  11. Netty之大动脉Pipeline
  12. 薰衣草紫色调人像lr/ps/luts预设
  13. Java用WebSocket + tail命令实现Web实时日志
  14. GJB150军用设备环境(霉菌、淋雨、湿热、盐雾、冲击)试验
  15. YOLO学习笔记4——YOLOV2详解+论文解读
  16. 两台计算机如何连接一个网络打印机共享,打印机怎么连接2台电脑?两台或多台电脑连接共享打印机操作方法...
  17. 3DMAX渲染时,vray渲染有光斑、噪点?几招就解决。
  18. NPOJ 1065 喵星人吃土豆
  19. flutter 使用MD5加密
  20. 河南省谷歌地球高程DEM等高线下载

热门文章

  1. es对分组后结果进行统计_ElasticSearch里面如何分组后根据sum值排序
  2. 妙啊,这条命令可以查出哪些端口被防火墙阻止了
  3. 【趣说】IT人的职场艰难,全藏在气氛组里!
  4. 4/8 Serverless 技术实践营成都站持续报名中
  5. mysql 符_mysql命令操作符
  6. 配置apache2目录
  7. 微型计算机原理与接口技术教材,微型计算机原理与接口技术(修订本)(21世纪高职高专规划教材....
  8. kinana 清空索引数据_(Elasticsearch)实战Elasticseartch、Logstash、Kibana
  9. qpython3调用adb_Python实现的基于ADB的Android远程工具
  10. python画图y轴在右侧_解决python中画图时x,y轴名称出现中文乱码的问题