Ü2 A4 Binärbaum
Verfasst: 2. Nov 2006 14:51
Moin!
Kann es sein, dass der Baum den wir in Scheme umsetzten sollen, nur vom Knoten in die Blätter verlinkt sein kann? Ich wollte intuitiv gleich in der Datenstruktur sowohl Nachfolger, als auch Vaterknoten speichern. Als ich bei der A4.2 dann den Baum ralisieren wollte, ist mir aufgefallen, dass ich dabei mit Scheme auf ein Problem gestoßen bin.
Ich erhalte immer den Fehler: reference to an identifier before its definition: b2
Nur umstellen der Definitionen würde aber auch nicht helfen, da ja dann der Vaterknoten noch nicht bekannt wäre. Habt ihr die Aufgabe ohne Referenz auf den Vaterknoten gelöst? Ich bin in der Übung nur bis A3 gekommen und wollte daher mal wissen, ob mir hier jemand helfen kann.
Danke schonmal im Vorraus!
Kann es sein, dass der Baum den wir in Scheme umsetzten sollen, nur vom Knoten in die Blätter verlinkt sein kann? Ich wollte intuitiv gleich in der Datenstruktur sowohl Nachfolger, als auch Vaterknoten speichern. Als ich bei der A4.2 dann den Baum ralisieren wollte, ist mir aufgefallen, dass ich dabei mit Scheme auf ein Problem gestoßen bin.
Code: Alles auswählen
;; Data Analysis and Definition:
(define-struct binbaum (dad l_child r_child content))
;; A binbaum is a structure: (make-binbaum binbaum_a binbaum_b binbaum_c Knoten)
;; where the first three parameter, binbaum_a, binbaum_b and binbaum_c, is a binbaum or empty
;; and the last parameter is a symbol, a number or empty.
(define b1(make-binbaum empty b2 b3 5))
(define b2(make-binbaum b1 b4 b5 3))
(define b3(make-binbaum b1 b6 b7 8))
(define b4(make-binbaum b2 empty empty 1))
(define b5(make-binbaum b2 empty empty 4))
(define b6(make-binbaum b3 empty empty 7))
(define b7(make-binbaum b3 empty empty 9))
Ich erhalte immer den Fehler: reference to an identifier before its definition: b2
Nur umstellen der Definitionen würde aber auch nicht helfen, da ja dann der Vaterknoten noch nicht bekannt wäre. Habt ihr die Aufgabe ohne Referenz auf den Vaterknoten gelöst? Ich bin in der Übung nur bis A3 gekommen und wollte daher mal wissen, ob mir hier jemand helfen kann.
Danke schonmal im Vorraus!