public class SubTree {
/**
* 已知二叉树前序和中序,求后序
* @param pre
* @param mid
* @param last
* @param i
*/
public static int i =0;//i:表示要插入后序序列的位置对于生成的后序序列,应该从最后位置开始写,
// 所以在main中将值赋成mid.length-1。这里将i定义成全局变量,是因为如果序列长度为1时,
// i--无法返回i的值,暂时没有想到其它方法。Integer已经试过,不行。
public void getLast(char[] pre, char[] mid, char[] last){
if(pre.length<=1){//如果序列的长度小于等于1,将该序列中的元素插入last序列,然后返回
last[i]=pre[0];
System.out.println(i);
i--;
return;
}
else{//如果序列长度大于1,则将二叉树的根插入last序列,然后将序列分成两个,分别进行递归