BST:模块中的未绑定标识符:BST错误

时间:2017-04-16 16:11:43

标签: scheme racket

代码是二进制搜索树的实现

调用函数(searchBST BST 5)会产生以下错误:

BST:模块中的未绑定标识符:BST

问题在于BST参数。对搜索的调用需要两个输入,我提供两个输入,但如果它在调用时崩溃,那么代码是错误的?

有什么线索导致这个错误?谢谢。

(define (searchBST BST key)

(cond
     [
      (null? BST)
      (list key)
      ]
     [
      (equal? key (currentKey BST))

        (list key (currentValue BST))
        ]

       [(< key (currentKey BST) )

        (searchBST (leftChild BST) key)
         ]

       [(> key (currentKey BST) )

         (searchBST (rightChild BST) key)

        ]
        )
     )


(searchBST BST 5) 

1 个答案:

答案 0 :(得分:1)

在您的代码中,BST参数的名称,这是大多数已定义过程所期望的。您必须为它传递实际的,可能是通过构建二叉搜索树并可选地将其绑定到变量。例如,构建一个简单的树并将其绑定到名为BST的变量:

(define BST (build 5 'ok '() '()))
(searchBST BST 5)