当前位置:首页 > 开发 > 编程语言 > Java > 正文

java-9. 判断整数序列是不是二元查找树的后序遍历结果

发表于: 2011-12-10   作者:bylijinnan   来源:转载   浏览:
摘要: public class IsBinTreePostTraverse{ static boolean isBSTPostOrder(int[] a){ if(a==null){ return false; } /*1.只有一个结点时,肯定是查找树 *2.只有两个结点时,肯定是查找树。例如{5,6}对应的BST是 6 {6,5}对应的BST是

public class IsBinTreePostTraverse{
	
	static boolean isBSTPostOrder(int[] a){
		if(a==null){
			return false;
		}
		/*1.只有一个结点时,肯定是查找树
		 *2.只有两个结点时,肯定是查找树。例如{5,6}对应的BST是   6		{6,5}对应的BST是	5
		 *							   					/						 \
		 *											   5 						  6	
		 */
		if(a.length<=2){
			return true;
		}
		//多于三个结点,则递归判断
		return isBSTPostOrderHelper(a,0,a.length-1);
		
		
	}
	
	static boolean isBSTPostOrderHelper(int[] a,int s,int e){
		int len=a.length;
		if(!(s>=0&&s<len&&e>=0&&e<len)){//检查下标是否合法
			return false;
		}
		if(s==e||s==e-1){
			return true;
		}
		int i=e-1;
		while(a[i]>a[e])i--;//直到a[i]是e的左孩子
		if(s<=i&&i<e){
			boolean firstPart=isBSTPostOrderHelper(a,s,i);
			boolean secondPart=isBSTPostOrderHelper(a,i+1,e-1);
			return firstPart&&secondPart;
		}
		return false;
	}
	
	public static void main(String[] args) {
		int[][] a= {
				{5,7,6,9,11,10,8},
				{5,6,7},
				{5,7,6},
				{1,3,2,5,7,6,4,9,11,10,13,15,14,12,8},
		};
		for(int[] each:a){
			boolean re=isBSTPostOrder(each);
			System.out.println(re);
		}
	}
}

java-9. 判断整数序列是不是二元查找树的后序遍历结果

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历结果。如果是,返回true,否则返
二元查找树的定义为: (1)若左子树不空,则左子树上所有节点的值均小于其根节点的值。 (2)若右
题目 (微软数据结构和算法面试100题中的第9题) 判断整数序列是不是二元查找树的后序遍历结果题目
相传此乃网易二面题 要求现场手写代码判断一个数字序列是BST后序遍历的结果。 来源1来源2 如图所示
  二叉查找树通俗说就是左孩子比父亲小,右孩子比父亲大。构造这么一个树,树嘛,递归即可。   
(一)从上往下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。【层次遍历】 从上到
根据前序和中序序列或后序和中序序列可以唯一确定一棵二叉树所以必须要知道:必须知道中序遍历。 根
根据前序和中序序列或后序和中序序列可以唯一确定一棵二叉树所以必须要知道:必须知道中序遍历。 根
一、题目:二叉搜索树的后序遍历序列 题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序
题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。假设输入的数组的任意两
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号