问题描述

给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。

输入格式

  两行,每行一个字符串,分别表示中序和后序排列

输出格式

  一个字符串,表示所求先序排列

样例输入

BADC

BDCA

样例输出

ABCD

【分析】根据先序,中序,后序的性质,可以知道:后序的最后一个节点一定是先序的第一个节点;知道了根节点,就可以在中序中分割开左子树和右子树。递归处理左右子树就可以得到先序遍历的结果了。用in,post,pre数组分别表示中序,后序和先序。inStart表示中序的起始位置,inEnd表示中序的终止位置,postIndex表示后序中根节点,preIndex表示要填充的先序的位置。在inStart到inEnd范围内找postIndex位置的根节点,分别求得左子树和右子树的节点个数,确定左子树和右子树在post中的位置,递归求解左子树和右子树。

import java.util.Scanner;

public class 求先序排列 {
static void makeTree(String mid,String back) {
char root = back.charAt(back.length()-1);
System.out.print(root);
int rootInMid = mid.indexOf(root);
if(rootInMid > 0){
makeTree(mid.substring(0,rootInMid),back.substring(0, rootInMid));
}
if(rootInMid < mid.length()-1){
makeTree(mid.substring(rootInMid+1),back.substring(rootInMid,back.length()-1));
}
}
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
String mid = input.nextLine();
String back = input.nextLine();
makeTree(mid,back);
} }

Java实现 蓝桥杯VIP 算法训练求先序排列的更多相关文章

  1. Java实现蓝桥杯VIP 算法训练 找公倍数

    问题描述 这里写问题描述. 打印出1-1000所有11和17的公倍数. 样例输入 一个满足题目要求的输入范例. 样例输出 与上面的样例输入对应的输出. 这道题其实没有什么可写的,但是为了让读者更方便的 ...

  2. Java实现 蓝桥杯VIP 算法训练 连通分块(并查集)

    试题 算法训练 连通分块 资源限制 时间限制:200ms 内存限制:8.0MB 问题描述 连通分块 输入格式 输入的第一行包含两个整数n, m n代表图中的点的个数,m代表边的个数 接下来m行,每行2 ...

  3. Java实现 蓝桥杯VIP 算法训练 无权最长链

    试题 算法训练 无权最长链 问题描述 给定一个n节点m边的无圈且连通的图,求直径 输入格式 第一行两个数字n,m 接下来m行每行两个数字x,y,代表x,y之间有一条边 输出格式 要求用户的输出满足的格 ...

  4. Java实现 蓝桥杯VIP 算法训练 星际交流

    算法训练 星际交流 时间限制:1.0s 内存限制:256.0MB 问题描述 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法 ...

  5. Java实现 蓝桥杯VIP 算法训练 Car的旅行路线

    大家可以看一下这个,蓝桥杯官网的这道题是有问题的 Car的旅行路线 算法训练 Car的旅行路线 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 查看参考代码 问题描述 又到暑假 ...

  6. Java实现 蓝桥杯VIP 算法训练 最大质因数(暴力)

    试题 算法训练 最大质因数 问题描述 给出N个数字,求出有最大的最大质因数的那个数 输入格式 第一行:一个整数N. 接下来的N行,每行一个整数A_i,表示给出的那N个数字. 输出格式 第一行:一个整数 ...

  7. Java实现 蓝桥杯VIP 算法训练 与1连通的点的个数(并查集)

    试题 算法训练 与1连通的点的个数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 没有问题描述. 输入格式 输入的第一行包含两个整数n, m n代表图中的点的个数,m代表边的个数 ...

  8. Java实现 蓝桥杯VIP 算法训练 非递归(暴力)

    试题 算法训练 非递归 问题描述 当x>1时,Hermite多项式的定义见第二版教材125页.用户输入x和n,试编写"非递归"函数,输出对应的Hermite多项式的值.其中x ...

  9. Java实现 蓝桥杯VIP 算法训练 步与血(递推 || DFS)

    试题 算法训练 步与血 问题描述 有n*n的方格,其中有m个障碍,第i个障碍会消耗你p[i]点血.初始你有C点血,你需要从(1,1)到(n,n),并保证血量大于0,求最小步数. 输入格式 第一行3个整 ...

随机推荐

  1. 【matlab 基础篇 02】基础知识一键扫盲,看完即可无障碍编程(超详细+图文并茂)

    博主快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你: 本人能力有限,文中难免有错误和纰漏之处,请大佬们不吝赐教 创作不易,如果本文帮到了您: 请帮忙点个赞

  2. 我去,你竟然还不会用 synchronized

    二哥,离你上一篇我去已经过去两周时间了,这个系列还不打算更新吗?着急着看呢. 以上是读者 Jason 发来的一条信息,不看不知道,一看真的是吓一跳,上次我去是 4 月 3 号更新的,离现在一个多月了, ...

  3. 设计模式之GOF23适配器模式

    结构型模式 核心作用:是从程序的结构上实现松耦合,从而可以扩大整体的 类结构,用来解决更大的问题 适配器模式adapter 实际生活中的例子:转换器 适配器的两种方式: 1,类适配器(继承) /**需 ...

  4. HBase 安装snappy压缩软件以及相关编码配置

    HBase 安装snappy压缩软件以及相关编码配置 前言 ​ 在使用HBase过程中因为数据存储冗余.备份数等相关问题占用过多的磁盘空间,以及在入库过程中为了增加吞吐量所以会采用相关的压缩算法来压缩 ...

  5. pod install update没有反应

    出去是镜像的问题,我用的是外网,所以应该不是镜像的问题, 换用这个: pod install --verbose --no-repo-update pod update --verbose --no- ...

  6. 比较接口(Comparable ,Comparator)及流的聚合操作

    Comparable 及 Comparator 的区别 Comparable 一个内比较器,类可以和自己比较 compareTo() 自然比较方法 public interface Comparabl ...

  7. mysql 获取当前指定分钟的时间

    SELECT NOW(); MINUTE); 结果:

  8. ClickHouse基本操作(二)

    一.先来说一下,ClickHouse为啥快 MySQL单条SQL是单线程的,只能跑满一个core,ClickHouse相反,有多少CPU,吃多少资源,所以飞快: ClickHouse不支持事务,不存在 ...

  9. webstorm-在不删除硬盘文件的条件下移除项目

    一段时间没用之后会忘记如何在webstorm里移除一个项目,要花很长的时间去找到底如何才能移除,所以特地把它记录下来了,方便下次忘记的时候可以查阅 把鼠标移在你要移除的那个项目上然后按下Delete键 ...

  10. MySQL事务隔离之MVCC版本控制

    MVCC简介 MVCC是一种多版本并发控制机制. MVCC是为了解决什么问题? 大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和 ...