Data structures 用于检查二叉树是否为二叉搜索树的递归关系

Data structures 用于检查二叉树是否为二叉搜索树的递归关系,data-structures,binary-tree,binary-search-tree,pseudocode,recurrence,Data Structures,Binary Tree,Binary Search Tree,Pseudocode,Recurrence,有人能帮我解释一下这个伪代码的递归关系吗?此伪代码描述了一个过程,该过程检查二叉树是否为二叉搜索树。我认为: T(n) = T(n/2) +1 代码: IsBST(节点,应答)← (对) 如果节点!=那就空了 如果节点。对!=那就空了 如果node.keynode.left.key,则 IsBST(node.left,应答) 其他的 答复← 错误的 回覆 回覆 你能更准确地回答你的问题吗?这个算法是递归的,如果你已经有一些递归算法的知识,它看起来很简单。我想知道这个算法的递归关系是什么。我认

有人能帮我解释一下这个伪代码的递归关系吗?此伪代码描述了一个过程,该过程检查二叉树是否为二叉搜索树。我认为:

T(n) = T(n/2) +1 
代码:

IsBST(节点,应答)← (对)
如果节点!=那就空了
如果节点。对!=那就空了
如果node.keynode.left.key,则
IsBST(node.left,应答)
其他的
答复← 错误的
回覆
回覆

你能更准确地回答你的问题吗?这个算法是递归的,如果你已经有一些递归算法的知识,它看起来很简单。我想知道这个算法的递归关系是什么。我认为它是T(n)=T(n/2)+1,但我不确定如何准确地接近它,这是我的直觉。什么是T?算法的复杂性?我使用的符号和你不一样,假设n是树的高度,它应该是:T(n)=2*T(n-1)+2;常数可能会因计算的操作而异。@innoSPG您能解释一下如何得到T(n)=2*T(n-1)+2吗?
IsBST(node, answer ← true) 
    if node!= null then
         if node.right!= null then
             if  node.key < node.right.key then
                  IsBST(node.right, answer)
             else
                 answer ← false
                return answer

         if node.left!= null then
             if  node.key > node.left.key then
                  IsBST(node.left, answer)
             else
                 answer ← false
                return answer

    return answer