采用整数n的方案过程路径和包含整数n的BST

时间:2014-02-09 22:21:15

标签: scheme

编写一个Scheme过程路径,该路径采用整数n和包含整数bst的二叉搜索树n,并返回一个1和0的字符串。向左移动对应于字符零('0'),向右移动对应于字符('1')

例如:

(path 17 '(14 (7 () (12 () ()))
(26 (20 (17 () ())())(31 () ()))))
"100".

在上面的例子中,当我们找到路径时,我们得到字符串100。我曾尝试但我的路径不正确。

1 个答案:

答案 0 :(得分:1)

您目前没有提供您编写的代码,因此我将草拟答案,以便您可以使用自己的解决方案填写空白。假设n在树中:

(define (path n bst)
  (cond ((< <???> n) ; if the current element is less than n
         (string-append "1" <???>)) ; append 1, advance recursion to the right subtree
        ((> <???> n) ; if the current element is greater than n
         (string-append "0" <???>)) ; append 0, advance recursion to the left subtree
        (else        ; we found n
         <???>)))    ; base case, end recursion with empty string

诀窍是遍历树并同时累积答案;鉴于输出是一个字符串,我们使用string-append一路构建它。