编程练习题2
已知某二叉树的先序序列和中序序列,编程计算并输出该二叉树的后序序列。
输入说明:仅一组数据,分为两行输入,第一行表示指定二叉树的先序序列,第二行表示该二叉树的中序序列,序列
元素均为大写英文字符,表示二叉树的结点。
输出说明:在一行上输出该二叉树的后序序列。
输入样本:
ABDGCEFH
DGBAECHF
输出样本:
GDBEHFCA
static String fs = "ABDGCEFH"; static String ms = "DGBAECHF"; public static void main(String[] args) { Test09 t = new Test09(); t.deal(0,0,ms.length()-1); } public void deal(int fs_low,int ms_low,int ms_height){ if(ms_height-ms_low < 0){ return; } else if(ms_height-ms_low == 0){ System.out.println(ms.charAt(ms_low)); return; } int middle = ms.indexOf(fs.charAt(fs_low)); deal(fs_low+1,ms_low,middle-1); deal(fs_low+middle-ms_low+1,middle+1,ms_height); System.out.println(ms.charAt(middle)); }