• 面试题24 二叉搜索树的后序遍历序列


    题目: 给定一个整数数组, 判断该数组是不是某二叉搜索的后续遍历序列。假设输入的数组的任意两个数字都互不相同。

    分析: 对于某种访问序列的verify的问题,一般先找到根节点,然后根据题目信息找出左子树与右子树。然后根据当前信息判断当前根节点的合法性,然后递归判断左子树和右子树的合法性。

    bool varify(int A[], int length)
    {
    	if(A == NULL || lenght < 1) return false ;
    	
    	int root = A{len-1];
    	int i, j;
    	for(i = 0; i< len -1 ; ++i){
    		if(A[i] > root)
    			break;
    	}
    	for(j = i; j < len -1; ++j){
    		if(A[j] < root)
    			return false;
    	}
    	
    	bool left = true, right = true;
    	
    	if(i > 0)
    		left = verify(A, i);
    	if(i  != len -1)
           right = verify(A + i, len -1-i);
    	   
    	return left&&right;
    }
    

      

  • 相关阅读:
    JAVA课堂作业(七)
    java继承
    JAVA课堂数组
    JAVA字符加密
    JAVA课堂验证
    JAVA随机数与方法重载
    JAVA语法基础课堂例子验证
    参数求和过程
    大道至简第二章读后感
    【复习笔记】数据结构-图
  • 原文地址:https://www.cnblogs.com/graph/p/3321935.html
Copyright © 2020-2023  润新知