Ich benutze Dr. Racket, Sprache Pretty Big, und ich versuche, eine einfache binäre Suchbaum "in?" Methode, die zurückgegeben wird, wenn ein Wert im binären Suchbaum ist oder nicht. Es muss allgemein sein und jede Art von Suchbaum akzeptieren (ob es Strings, Ints usw. enthält), aber ich stoße auf diese Fehlermeldung, die mich verrückt macht. Jede Hilfe ist willkommen, hier ist der Code:Binäre Suchstruktur in Scheme, die versucht, Dr. Racket zu verwenden, um einfach wahr oder falsch zurückzugeben, wenn in BST ein Wert vorhanden ist. Fehler
EDITED :: Es funktioniert jetzt, aber nicht mit alles andere als Zahlen (oder zumindest nicht funktioniert, mit Streichern) .. Neue Ausgabe:
(define (bstsearch tree value)
(cond
((null? tree) #f)
((< value (car tree))
(bstsearch (cadr tree) value))
((> value (car tree))
(bstsearch (caddr tree) value))
((= value (car tree))
#t)
))
der Fehler ich erhalte sagt:
<: expects type <real number> as 1st argument, given: "horse"; other arguments were: "horse"
Bei Verwendung:
(bstsearch '("horse" ("cow"() ("dog"()())) ("zebra" ("yak"()())())) "horse")
als Eingabe.
Versuchen Sie mit Code-Tags, um Ihre 'Lisp' lesbar zu machen. Um dies zu tun, drücken Sie die Binär-Taste oder den Code mit vier Leerzeichen einrücken. – Blender
Gotchya, danke für den Tipp! – Trevor
Wenn Sie es benötigen, um mit Strings zu arbeiten, müssen Sie es ändern, um die Zeichenfolge , string> zu verwenden? und Schnur? Methoden. Sie können auch eine make-binary-tree-Methode erstellen, die Vergleichsmethoden akzeptiert, sodass Sie BSTs erstellen können, die mit beliebigen Daten arbeiten. – oligofren