二进制搜索的高度为:
-0,如果树是空的
-1 +(左子树高度的最大值和右子树的高度)。
例如: (身高空)=> 0
(高度(make-node 2“two”(make-node 1“one”空为空)为空)) => 2
我想知道如何找到每个子树的高度以及递归的工作原理。谢谢!
答案 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