代码是二进制搜索树的实现
调用函数(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)
答案 0 :(得分:1)
在您的代码中,BST
是参数的名称,这是大多数已定义过程所期望的。您必须为它传递实际的值,可能是通过构建二叉搜索树并可选地将其绑定到变量。例如,构建一个简单的树并将其绑定到名为BST
的变量:
(define BST (build 5 'ok '() '()))
(searchBST BST 5)