Je travaille sur la traversée de commande de poste à un arbre de recherche binaire. Voilà ce que j'ai jusqu'à présentTraversée de commande de poste dans le schéma
(define (head tree)
(car tree))
(define (left tree)
(cadr tree))
(define (right tree)
(caddr tree))
(define (post-order node)
(if (null? node)
'()
(append (cons (post-order (left node))
(post-order (right node)))
(head node))))
J'attends ce code peut renvoyer une liste de traversée poste de commande. Cependant, il ne compile même pas. L'erreur est
mcar: contract violation
expected: mpair?
given: 5
J'ai vérifié la syntaxe de append et le contre. Et je ne peux toujours pas comprendre ce problème. Il semble qu'il y ait quelque chose qui ne va pas dans la logique plutôt que dans la syntaxe.
Pouvez-vous le signaler et l'expliquer. Je vous remercie.
Cela fonctionne. Merci pour cette explication claire:) –