已知某二叉树的先序序列和中序序列,编程计算并输出该二叉树的后序序列。
输入说明:仅一组数据,分为两行输入,第一行表示指定二叉树的先序序列,第二行表示该二叉树的中序序列,序列
元素均为大写英文字符,表示二叉树的结点。
输出说明:在一行上输出该二叉树的后序序列。
输入样本:
ABDGCEFH
DGBAECHF
输出样本:
GDBEHFCA
package com.bird.exam;
import java.util.Scanner;
/**
*
* @author Bird
*已知某二叉树的先序序列和中序序列,编程计算并输出该二叉树的后序序列。
*
输入样本:
ABDGCEFH
DGBAECHF
输出样本:
GDBEHFCA
*/
public class Tree {
private static char preoder[];
private static char inoder[];
public static void find(int preleft, int preright, int inleft, int inright){
int i = 0, lsize=0,rsize=0;
if(preleft<=preright && inleft<=inright){
for(i=inleft; i<=inright; i++){
if(preoder[preleft]==inoder[i])break;
}
lsize=i-inleft;
rsize=inright-i;
if(lsize>0)find(preleft+1,preleft+lsize,inleft,i-1);
if(rsize>0)find(preleft+1+lsize,preright,i+1,inright);
System.out.print(preoder[preleft]);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String pre=sc.next();
String inorder=sc.next();
preoder = pre.toCharArray();
inoder = inorder.toCharArray();
find(0,preoder.length-1,0,inorder.length()-1);
}
}
分享到:
相关推荐
二维矩形装箱算法--二叉树--java实现.rar
数据结构--二叉树--思维导图.pdf
面试的时候,我们会经常碰到二叉树之类的题目,这里,我对二叉树算法进行了许多的总结,希望能对一两位朋友有帮助
/*选择二叉链式存储结构作为二叉树的存储结构,设计一个程序实现二叉树的基本操作(包括建立、输出、前序遍历、中序遍历、后序遍历、求树高、统计叶子总数等) 【实验内容】 必做内容 程序的菜单功能项如下: 1----...
多个车子,N个箱子,用二维矩形方式进行装车。采用二叉树实现。java
目标:软件用户为二叉树初学者或教师,软件用来辅助学习。故软件的功能要清晰、使用起来要方便、软件可独立运行以及在合理时间内演示结果。 使用环境说明:在Dosbox或Windows xp的虚拟DOS窗口下,输入—cd X:进入...
算法大全-面试题-链表-栈-二叉树-数据结构,面试利器
二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树
算法-理论基础- 二叉树- 二叉树的遍历(包含源程序).rar
二叉树实现-完美版-二叉树操作-整个实现用C++实现
本程序简单实现了《数据结构》课本中二叉树的中序线索化算法,并同时实现了与子对应的中序线索化非递归遍历二叉树的算法
5.5---构建二叉树---求树高 (2).c
完全二叉树的层序遍历-labview完全二叉树的层序遍历-labview完全二叉树的层序遍历-labview完全二叉树的层序遍历-labview完全二叉树的层序遍历-labview完全二叉树的层序遍历-labview完全二叉树的层序遍历-labview完全...
用c语言编写,完整的二叉树辅助教学软件----用彩色的图形操作说明实际问题,形象具体,具有很强的说服力(操作说明见txt文档或者doc文档) 将使你比较深入地了解二叉树原理!
二叉树--翻转二叉树动画图
软件技术基础大作业--二叉树遍历,包含流程图,源代码,和文字说明
打印二叉树-按照二叉树的形状打印 用C++实现,运行成功
算法大全-面试题-链表-栈-二叉树-数据结构.docx 一、单链表 目录 1.单链表反转 2.找出单链表的倒数第4个元素 3.找出单链表的中间元素 4.删除无头单链表的一个节点 5.两个不交叉的有序链表的合并 6.有个二级...