题目大意:给定一棵 N 个节点的二叉树的前序遍历和中序遍历,求其后序遍历。

题解:递归操作,每次只需知道先序遍历和中序遍历的开始点,左子树大小即可,根据前序遍历的开始位置可知子树根节点的坐标,再在中序遍历中找到对应的左子树大小,递归操作下去,一棵二叉树就被完全地确定下来了。

代码如下

#include <bits/stdc++.h>
using namespace std;
const int maxn=1010; int n,pre[maxn],mid[maxn]; void read_and_parse(){
for(int i=1;i<=n;i++)scanf("%d",&pre[i]);
for(int i=1;i<=n;i++)scanf("%d",&mid[i]);
} void dfs(int a,int b,int n,int tag){
int i;
if(n<=0)return;
for(i=0;pre[a]!=mid[b+i];i++);
dfs(a+1,b,i,0);
dfs(a+i+1,b+i+1,n-i-1,0);
printf("%d",pre[a]);
if(!tag)printf(" ");
else puts("");
} void solve(){
dfs(1,1,n,1);
} int main(){
while(scanf("%d",&n)!=EOF){
read_and_parse();
solve();
}
return 0;
}

【HDU1710】树的遍历的更多相关文章

  1. 数据结构--树(遍历,红黑,B树)

    平时接触树还比较少,写一篇博文来积累一下树的相关知识. 很早之前在数据结构里面学的树的遍历. 前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右子树 后序遍 ...

  2. YTU 3023: 树的遍历

    原文链接:https://www.dreamwings.cn/ytu3023/2617.html 3023: 树的遍历 时间限制: 1 Sec  内存限制: 128 MB 提交: 3  解决: 2 题 ...

  3. 团体程序设计天梯赛-练习集L2-006. 树的遍历

    L2-006. 树的遍历 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历 ...

  4. leetcode404-----简单的树的遍历

    Find the sum of all left leaves in a given binary tree. Example: 3 / \ 9 20 / \ 15 7 There are two l ...

  5. pat L2-006. 树的遍历

    L2-006. 树的遍历 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历 ...

  6. L2-006. 树的遍历

    题目链接:L2-006. 树的遍历 今天一神给我手敲二叉树模板,瞬间就领悟了,感觉自己萌萌哒! 看上去很直观! #include <iostream> #include <cstdi ...

  7. js实现对树深度优先遍历与广度优先遍历

    深度优先与广度优先的定义 首先我们先要知道什么是深度优先什么是广度优先. 深度优先遍历是指从某个顶点出发,首先访问这个顶点,然后找出刚访问这个结点的第一个未被访问的邻结点,然后再以此邻结点为顶点,继续 ...

  8. L2-006 树的遍历 (25 分) (根据后序遍历与中序遍历建二叉树)

    题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805069361299456 L2-006 树的遍历 (25 分 ...

  9. 团体程序设计天梯赛 L2-006. 树的遍历 L2-011. 玩转二叉树

    L2-006. 树的遍历 #include <stdio.h> #include <stdlib.h> #include <string.h> #include & ...

  10. L2-006 树的遍历 (后序中序求层序)

    题目: 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数.第二行给出其后序遍历序 ...

随机推荐

  1. controlfile 备份到trace文件例子

    主要是为了学习oracle的克隆.参考: http://www.dba-oracle.com/oracle_tips_db_copy.htm 执行: SQL>alter database bac ...

  2. 汇编 shr 逻辑右移指令,shl 逻辑左移指令,SAL 算术左移指令,SAR 算术右移指令

    知识点: shr 逻辑右移指令 shl 逻辑左移指令 一.SHL 逻辑左移指令测试 shr 逻辑右移指令 右移一位相当于整除2 shl 逻辑左移指令 左移一位相当于乘2 //很多时候会溢出 //& ...

  3. 学会查看Linux手册页(man文档)

    区段1:用户指令区段2:系统调用区段3:程序库调用区段4:设备区段5:文件格式区段6:游戏区段7:杂项区段8:系统指令区段9:内核内部指令区段n:Tcl或Tk指令 如果记不清楚工具或者函数的完整名字, ...

  4. ubuntu下安装搜狗输入法

    1.如果系统中未安装依赖fcitx,libssh2-1,或者依赖fcitx,libssh2-1的版本低的话,则需提前安装或者升级,否则安装输入法时会出错 安装命令 sudo apt-get insta ...

  5. 解决 idea 中的 tomcat控制台 和cmd tomcat下的中文乱码问题(win10 64位)

    原理:idea控制台里的日志默认是从tomcat的localhost.log 和 catalina.log 两个文件中读出来的. https://blog.csdn.net/zhaijingkui/a ...

  6. Partition4:增加分区

    在关系型 DB中,分区表经常使用DateKey(int 数据类型)作为Partition Column,每个月的数据填充到同一个Partition中,由于在Fore-End呈现的报表大多数是基于Mon ...

  7. Mac 上flink的安装与启动

    在Mac 上安装flink,需要通过Homebrew安装的 1.howmebrew的安装方式,在终端粘贴以下命令,或者去官网https://brew.sh/index_zh-cn 找到此代码复制粘贴到 ...

  8. Python列表知识点讲解

    增删改查 增 X.append函数是在原有列表中的末尾追加一个新的元素存放在列表中 X.extend() 将一个列表中的元素添加到另一个列表中,将所引用的原列表保持不变,同时extend还可以运用到, ...

  9. PAT-1010 Radix

    1010 Radix (25 分) Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 1 ...

  10. UVALive 4877 Non-Decreasing Digits 数位DP

    4877 Non-Decreasing Digits A number is said to be made up ofnon-decreasing digitsif all the digits t ...