题干:

Input

The input will contain one or more test cases. 
Each test case consists of one line containing two strings preord and inord, representing the preorder traversal and inorder traversal of a binary tree. Both strings consist of unique capital letters. (Thus they are not longer than 26 characters.) 
Input is terminated by end of file.

Output

For each test case, recover Valentine's binary tree and print one line containing the tree's postorder traversal (left subtree, right subtree, root).

Sample Input

DBACEGF ABCDEFG
BCAD CBAD

Sample Output

ACBFGED
CDAB

题目大意:

给定一棵树的先序中序,让你输出后序遍历的序列。

解题报告:

直接模拟

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define F first
#define S second
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
typedef pair<int,int> PII;
const int MAX = 2e5 + 5;
struct Node {char val;int l,r;
} p[MAX];
int tot;
char q[MAX],z[MAX],h[MAX];
int dfs(char q[],char z[],int len) {if(len == 0) return -1;int cur = ++tot;p[cur].val = q[1];p[cur].l = p[cur].r = -1;if(len == 1) return cur;int tar = 0;for(int i = 1; i<=len; i++) {if(z[i] == q[1]) {tar = i;break;}}  p[cur].l = dfs(q+1,z,tar-1);p[cur].r = dfs(q+tar,z+tar,len-tar);return cur;
}
void out(int cur) {if(p[cur].l != -1) out(p[cur].l);if(p[cur].r != -1) out(p[cur].r);printf("%c",p[cur].val);
}
int main()
{while(~scanf("%s%s",q+1,z+1)) {tot=0;int len = strlen(q+1);dfs(q,z,len);out(1);puts("");} return 0 ;
}

【POJ - 2255】Tree Recovery (给定树的先序中序,输出后序)相关推荐

  1. POJ 2255 Tree Recovery(已知前序中序,求后序)

    1. 题目链接:http://poj.org/problem?id=2255 2. 题目大意: 给定二叉树的前序和中序序列,输出其后序序列 3. 思考过程: 4. AC代码 /*** @descrip ...

  2. poj 2255 Tree Recovery 解题报告

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 题目出处 ...

  3. POJ 2255 Tree Recovery 二叉树恢复

    一道和Leetcode的一道题目基本上一样的题目. 给出前序遍历和中序遍历序列,要求依据这些信息恢复一颗二叉树的原貌,然后按后序遍历序列输出. Leetcode上有给出后序和中序,恢复二叉树的. 只是 ...

  4. poj 2255 Tree Recovery

    #include <iostream> //给出先序和中序遍历序列,输出后序遍历序列#include <string.h>using namespace std;const i ...

  5. 数据结构 | 第十一章:二叉树和其他树 | 【前序遍历】【中序遍历】【后序遍历】【层次遍历】 | 并查集

    第5-10章:线性结构,元素之间存在线性次序(线性表.数组与矩阵.栈.队列.跳表和散列表 第11-15章:层次结构(二叉树和树.优先队列.竞赛树.搜索树) 文章目录 11.1 树 11.2 二叉树 1 ...

  6. 树的遍历(中序,前序,后序)

    与只有一种逻辑遍历它们的线性数据结构(数组.链表.队列.堆栈等)不同,树可以以不同的方式遍历,常见的有中序遍历,前序遍历和后序遍历. 实现各种遍历的方法又包括: 以上图为例: 深度优先遍历:  (a) ...

  7. Uva536 Tree Recovery二叉树重建(先序和中序确定二叉树,后序输出)

    题目大意:给定二叉树先序和中序遍历,输出二叉树后序遍历. 方法:将英文字母映射为数字,利用数组存储,先序第一个节点是父节点,然后再从中序遍历中找到位置.注意边界.代码也很简单一次ac. #includ ...

  8. 【CCCC】L2-006 树的遍历 (25分),根据后序与中序遍历建立二叉树(我讨厌树,系列1)

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

  9. java二叉树合并_Java(树的前中后序遍历构造二叉树题型整合)前序和中序、中序和后序、前序和后序遍历序列构造二叉树算法整合归纳...

    前言 二叉树各种花里胡哨的算法题真的把我搞晕了,今天特地整理出一类有关二叉树的算法题,希望能帮助阅读到此文章的人,今后不再受此类题型的困扰. 一.题目类型 已知二叉树的两种遍历序列,请根据该序列构建二 ...

最新文章

  1. 【java开发系列】—— JDK安装
  2. OpenLDAP、什么是目录服务、OpenLDAP简介、LDAP的基本模型、目录树概念、(DC、UID、OU、CN、SN、DN、RDN、c、o)、LDAP的使用
  3. Windows Phone 7 Bitmap编码
  4. LeetCode的二分查找的练习部分总结
  5. 如何在word中像LaTeX一样键入公式
  6. javascript window.open
  7. linux复制文件属性不变例子,linux中文件系统属性chattr权限
  8. java表白代码,神操作!
  9. 制作一个全盘搜索器 ,能搜索整个磁盘所有目录
  10. 理解Windows操作系统的KMS与MAK密钥
  11. Python学习笔记(二)(图灵学院)
  12. 大数据学习之一——Hadoop单机部署
  13. 数据可视化_EChat
  14. 电脑故障排除方法(风扇转一下,马上就停,主板没有其它任何响应)
  15. A股-进阶-1分钟get的选股八大技巧
  16. 02 夯实根基,web网页基础
  17. 学习《GUI Qt4 编程》笔记-02-代码实现控件布局-设计师控件布局
  18. Excel中使用F-检验
  19. python 网页视频下载工具 you-get 安装及使用
  20. java继承链中方法调用优先级.顺序:this.show(object)super.show(object)this.show((super)object)super.show((super))

热门文章

  1. Ubuntu10.04No init found. Try passing init= bootarg解决方案
  2. Java学习笔记10-1——MyBatis
  3. php 强制刷新一次,强制浏览器使用PHP刷新所有内容
  4. 统计一行文本的单词个数_word操作技巧:不同情况的文字统计方法
  5. python多线程编程_Python 多线程编程
  6. ff14拆区后哪个服务器人最多,FF14拆区可以转服吗 拆区期间转服教程
  7. JAVA怎么将整数反转_【leetcode刷题】[简单]7.反转整数(reverse integer)-java
  8. mysql pid_mysql pid文件是什么用途
  9. codeql php,使用codeql 挖掘 ofcms
  10. js密码强度正则表达式_知道这20个前端正则表达式,能让你做项目时少写1000行甚至一万行