Ich arbeite an Post Order Traversal zu einem binären Suchbaum. Das ist, was ich bis jetzt habeNachtragstraverse im Schema
(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))))
Ich erwarte, dass dieser Code eine Liste der Post-Auftragstraverse zurückgeben kann. Allerdings kompiliert es nicht einmal. Der Fehler ist
mcar: contract violation
expected: mpair?
given: 5
ich die Syntax der append und Nachteile überprüft haben. Und ich kann dieses Problem immer noch nicht lösen. Es scheint, dass etwas mit der Logik und nicht mit der Syntax falsch ist.
Können Sie darauf hinweisen und es erklären. Vielen Dank.
Es funktioniert. Danke für diese klare Erklärung:) –