二叉树的遍历
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;
}

HLG2040二叉树遍历已知前中,求后的更多相关文章

  1. 2020牛客暑期多校训练营 第二场 B Boundary 计算几何 圆 已知三点求圆心

    LINK:Boundary 计算几何确实是弱项 因为好多东西都不太会求 没有到很精通的地步. 做法很多,先说官方题解 其实就是枚举一个点 P 然后可以发现 再枚举一个点 然后再判断有多少个点在圆上显然 ...

  2. 已知数据库中存在表tb_book2,通过在图书信息界面填写书本的基本信息,然后提交后写入数据库中的表格中。需要对提交的信息进行修改,信息填入不能为空,为空则则有提示。

    jsp结合SQLSERVER向数据库中的表添加图书信息. 已知数据库中存在表tb_book2,通过在图书信息界面填写书本的基本信息,然后提交后写入数据库中的表格中.需要对提交的信息进行修改,信息填入不 ...

  3. TZOJ 3209 后序遍历(已知中序前序求后序)

    描述 在数据结构中,遍历是二叉树最重要的操作之一.所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问. 这里给出三种遍历算法. 1.中序遍历的递归算法定义:  ...

  4. HDU 1710 二叉树遍历,输入前、中序求后序

    1.HDU  1710  Binary Tree Traversals 2.链接:http://acm.hust.edu.cn/vjudge/problem/33792 3.总结:记录下根结点,再拆分 ...

  5. 二叉树遍历(flist)(二叉树,已知中序层序,求先序)

    问题 C: 二叉树遍历(flist) 时间限制: 1 Sec  内存限制: 128 MB提交: 76  解决: 53[提交][状态][讨论版][命题人:quanxing][Edit] [TestDat ...

  6. poj 2002(好题 链式hash+已知正方形两点求另外两点)

    Squares Time Limit: 3500MS   Memory Limit: 65536K Total Submissions: 18493   Accepted: 7124 Descript ...

  7. [YY]已知逆序列求原序列(二分,树状数组)

    在看组合数学,看到逆序列这个概念.于是YY了一道题:已知逆序列,求出原序列. 例子: 元素个数 n = 8 逆序列 a={5,3,4,0,2,1,1,0} 则有原序列 p={4,8,6,2,5,1,3 ...

  8. HDU - 6096 :String (AC自动机,已知前后缀,匹配单词,弱数据)

    Bob has a dictionary with N words in it. Now there is a list of words in which the middle part of th ...

  9. 【NX二次开发】三点画圆,三角形外心,已知三点求圆心

    已知P1.P2.P3,求点O 算法:三点不在一条直线上时,通过连接任意两点,作中垂线.任意两条中垂线的交点是圆心.

随机推荐

  1. web.xml的深入学习

    1.过滤器?  监听器?   listener   servlet    filter? 2.命名空间?   schema?  DTD?     xml文件的学习要好好的看下哦!

  2. sublime text下代码太长brackethighlighter不能正确显示闭合高亮的解决方法

    用brackethighlighter显示高亮一直都有这个问题...也没在网上找到解决方案,就一直凑合着用,今天翻着配置文件玩,改了参数发现问题解决了...... 修改search_threshold ...

  3. Oracle 索引

    索引是建立在数据库表中的某些列的上面,是与表关联的,可提供快速访问数据方式,但会影响增删改的效率:常用类型(按逻辑分类):单列索引和组合索引.唯一索引和非唯一索引. 什么时候要创建索引 (1)在经常需 ...

  4. java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStreamsJavamail问题

    异常描述如下: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineI ...

  5. CSS设置技巧

    一.单位和值 1.1 颜色值 在网页中的颜色设置是非常重要,有字体颜色(color).背景颜色(background-color).边框颜色(border)等,设置颜色的方法也有很多种: 1.英文命令 ...

  6. PowerDesigner逆向工程从现有数据库生成PDM

    如题,我想对于一个旧系统或者帮别人的系统进行擦屁股时,数据库设计以及关系都是非常好的切入点: 使用这个方法的前提,就是在数据库设计中,已经有明确的主外键关系(这里只针对中小型设计,业务逻辑强的,对于特 ...

  7. poj 3070 矩阵快速幂模板

    题意:求fibonacci数列第n项 #include "iostream" #include "vector" #include "cstring& ...

  8. automapper初步

    首先引入 automapper.dll using System; using System.Collections.Generic; using System.Linq; using System. ...

  9. MyEclipse------快速写入内容到指定目录下的文件(字节输出流)

    other.jsp <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  10. event.keycode值大全

    window.event.keycode-获取按下的键盘值   event.keycode值大全1 keycode 8 = BackSpace BackSpace 2 keycode 9 = Tab ...