如何找到二叉搜索树的最大高度?

时间:2013-11-17 04:20:03

标签: scheme binary-search-tree

二进制搜索的高度为:

-0,如果树是空的

-1 +(左子树高度的最大值和右子树的高度)。

例如: (身高空)=> 0

(高度(make-node 2“two”(make-node 1“one”空为空)为空)) => 2

我想知道如何找到每个子树的高度以及递归的工作原理。谢谢!

1 个答案:

答案 0 :(得分:4)

实现非常简单,您只需要在代码中翻译已经用文字写的内容。我不会破坏你的乐趣,但我会告诉你程序的一般概念,所以你可以通过自己的方式得到答案:

(define (height tree)
  (if <???>  ; if the tree is empty
      <???>  ; then return the height of the empty tree
      (<???> ; otherwise return 1 plus the maximum between
         (max (height <???>)     ; the height of the left subtree
              (height <???>))))) ; and the height of the right subtree