zoukankan      html  css  js  c++  java
  • 判断的后序遍历序列是否是二叉查找树

    二叉查找树:如果左子树不为空,那么左子树上的所有节点都小于根节点;

          如果右子树不为空,那么又子树上的所有节点都大于根节点;

          左右子树也是二叉排序树。

    在后序遍历得到的序列中,最后一个数字是树的根节点的值。数组中前面的数字可以分为两部分:
    • (1)第一部分是左子树结点的值,它们都比根结点的值小
    • (2)第二部分是右子树结点的值,它们都比根结点的值大
    • (3)递归左子树
    • (4)递归右子树

    代码:

      public class BinarySearchTrees
        {
            //有序遍历结果的特点是,最后一个元素是根元素,根据这个根元素会把其他的子序列按照大小分成两个部分,
            //最后递归地对这两个子序列分别进行上述操作
    
            public static bool VerifyBST()
            {
                int[] array = { 5,7,6,9,11,10,8};
              return  VerifyBST(array, 0, array.Length-1);
            }
    
            public static bool VerifyBST(int[] array, int start, int end)
            {
                if (start == end)
                    return true;
                int root = array[end];
    
                //遍历左子树
                int left = start;
                while (left < end && array[left] < root) { left++; }
                left--;
    
                //遍历右子树
                int right = left+1;
                while (right < end && array[right] > root)
                {
                    if (array[right] < root) //右子树如果有小于根节点的,直接返回
                        return false;
                    right++;
                }
    
                //递归左子树
                bool leftRecurse = true;
                if (left - start > 0)
                {
                    leftRecurse = VerifyBST(array, start, left);
                }
    
                //递归右子树
                bool rightRecurse = true;
                if (end - left > 0)
                {
                    rightRecurse = VerifyBST(array, left, end);
                }
    
                return leftRecurse&&rightRecurse;
            }
        }
    

      

  • 相关阅读:
    java NIO的基本用法
    BufferedReader源码分析
    FileInputStream读中文乱码问题
    Java使用IO流对同一个文件进行读写操作
    php表格--大数据处理
    tp5--模型关联
    tp5 -- join注意事项
    表单外部提交
    网站防止sql注入
    微信网页授权报code been used, hints: [ req_id: XYv1Ha07042046 ]
  • 原文地址:https://www.cnblogs.com/wuMing-dj/p/3379976.html
Copyright © 2011-2022 走看看