搜索二叉树的后序遍历判断
来源:互联网 发布:python数据分析 pdf 编辑:程序博客网 时间:2024/06/01 17:22
/** * 搜索二叉树的后序遍历判断 */import java.util.Arrays;public class Test24_VerifyBST{ public static void main(String[] args) { //定义一个待判断数组 //int[] arr1 = {2, 4, 3, 8, 11, 10, 7}; int[] arr1 = {5, 7, 6, 9, 11, 10, 8}; int[] arr2 = {7, 4, 6, 5}; int[] arr3 = {1, 2, 3, 7, 4, 6, 5}; //判断是否为BST System.out.println("数组arr1:"+verifySequenceOfBST(arr1)); System.out.println("数组arr2:"+verifySequenceOfBST(arr2)); System.out.println("数组arr3:"+verifySequenceOfBST(arr3)); } private static boolean verifySequenceOfBST(int[] arr) { if(arr == null){ return false; } int length = arr.length; int root = arr[length-1]; //寻找左子树及其结束位置(i-1) int i = 0; for(; i<arr.length -1; i++){ if(arr[i] > root) break; } //寻找右子树 int j = i; for(; j<arr.length-1; j++){ if(arr[j] < root) return false; } //递归判断左子树和右子树是否符合上述条件(二叉搜索树) 当只剩下一个元素时, i=0,j=arr.lenght-1=0结束所有判断,返回true boolean left = true; if(i > 0){ left = verifySequenceOfBST(Arrays.copyOfRange(arr, 0, i)); } boolean right = true; if(j < arr.length-1){ right = verifySequenceOfBST(Arrays.copyOfRange(arr, j, arr.length-1)); } return (left && right); }}
1 0
- 判断是否是二叉搜索树的后序遍历
- 判断二叉搜索树的后序遍历序列是否合法
- 判断是否为二叉搜索树的后序遍历
- 搜索二叉树的后序遍历判断
- 判断是否二叉搜索树的后序遍历
- 二叉搜索树的后序遍历序列序列判断是否是二叉搜索树
- 二叉搜索树的后序遍历序列(判断后序遍历序列是否合法)
- 二叉树系列7:判断整数序列是不是二叉搜索树的后序遍历结果
- 二叉搜索树的后序遍历
- 二叉搜索树的后序遍历
- 二叉搜索树的后序遍历
- 二叉搜索树的后序遍历
- 二叉搜索树的后序遍历
- 二叉搜索树的后序遍历
- 判断二叉搜索树是否为后序遍历序列
- 二叉搜索树的后序判断
- 剑指off-判断一个数组是不是搜索二叉树的后序遍历的序列
- 判断给定的数组是否为二叉搜索树的后序遍历序列
- SpringMVC接收页面表单参数
- uvm的config_db
- 求解两个数组中总体平均的差的绝对值和最小
- C/C++ 打印格式小结
- Struts中Action动态使用
- 搜索二叉树的后序遍历判断
- 结对编程四则运算
- Tell me the area(计算几何--求两圆相交面积)
- 大话设计模式读书笔记(四) 装饰模式
- ZOJ
- cocos2d-x 提升篇 (17) 简单的桌上足球游戏
- shell中各种括号的作用()、(())、[]、[[]]、{}
- linux系统中从网络自动获取软件及更新的工具
- kubernetes源码阅读之controller-manager(二)