Java实现:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。

来源:互联网 发布:mac ps6序列号 编辑:程序博客网 时间:2024/05/16 01:07
import java.util.Arrays;import java.util.Scanner;public class Tree4 {static boolean verifysequence(int[] sequence){int length=sequence.length;int root=sequence[length-1];if(sequence==null||length <=0)return false;//在二叉搜索树中左子树的节点小于根节点int i=0;for (; i < length-1; i++) {if(sequence[i]>root)break;}//在二叉搜索树中右子树的节点大于根节点int j=i;for(;j<length-1;j++){if(sequence[j]<root)return false;}//判断左子树是不是二叉搜索树boolean left=true;if(i>0)left=verifysequence(Arrays.copyOfRange(sequence, 0, i));//判断右子树是不是二叉树boolean right=true;if(i<length-1)right=verifysequence(Arrays.copyOfRange(sequence, i, sequence.length-1));return(left&&right);}public static void main(String[] args) {Scanner sc=new Scanner(System.in);String[] sr=sc.nextLine().split(" ");int[] arr=new int[sr.length];for (int i = 0; i < sr.length; i++) {arr[i]=Integer.parseInt(sr[i]);}System.out.println(verifysequence(arr)?"true":"false");sc.close();}}

阅读全文
0 0
原创粉丝点击