2017-04-16 2 views
0

Le code est une implémentation d'un binaire Recherche ArbreBST: identificateur non fixé dans le module dans: BST Erreur

appel de la fonction (searchBST BST 5) donne l'erreur suivante:

BST: identificateur non consolidé en module dans: BST

Le problème réside dans le paramètre BST. L'appel à la recherche prend deux entrées et je fournis les deux entrées, mais si elle se bloque sur appel alors le code est faux?

Des indices ce que le causé cette erreur? Je vous remercie.

(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) 

Répondre

1

Dans votre code, BST est le nom d'un paramètre , qui devrait par la plupart des procédures définies. Vous devez lui transmettre une valeur réelle, vraisemblablement en construisant un arbre de recherche binaire et éventuellement en le liant à une variable. Par exemple, pour créer un arbre simple et le lier à une variable nommée BST:

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