Hausübung 2 Aufgabe 5.1

Firefox
Neuling
Neuling
Beiträge: 1
Registriert: 7. Dez 2004 18:29

Hausübung 2 Aufgabe 5.1

Beitrag von Firefox »

Hallo,

ich würde ganz gerne wissen, wie ich bitte auf ein empty überprüfen kann. Wenn ich es richtig sehe, wäre ein leerer Baum ja nichts weiter als ein Baum mit den Einträgen empty empty empty für die entsprechenden Variablen linker Knoten, rechter Knoten und Wert. Nun dachte ich, ich könnte es als normales Symbol behandeln, also mit symbol=? abfragen und anschließend true liefern, wenn empty eingegeben wurde. Dies erkannte Scheme allerdings nicht bei einem Test an. Ich habe mit einem cond auf alle 3 Variablen des structs überprüft und auch einen else Fall eingebaut. Es kommen auch keine syntaktischen Fehlermeldungen. Wenn ich nun aber Testfälle probiere, kriege ich folgende Fehlermeldung:
symbol=?: expected argument of type <symbol>; given empty
Den normalen Zuweisungsoperator = kann ich auch nicht zum überprüfen verwenden, da dieser ja nur für Zahlen funktioniert.

Am liebsten würde ich ja meinen Code posten, aber dies ist ja eher ungern gesehen :wink: Wäre sehr dankbar, wenn mir jemand helfen oder zumindest einen Denkanstoß geben könnte.

Benutzeravatar
E.d.u.
Nerd
Nerd
Beiträge: 633
Registriert: 3. Feb 2004 17:01
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von E.d.u. »

nein, ein empty baum ist einfach empty (also nicht empty empty empty) also du kannst ueberpruefen ob baum b empty ist durch: (empty? b)
wenn du ein baum erzeugst, dann bekommt er werte fuer sein "info", "links" und "rechts". "links" und "rechts" koennen auch leer sein. Das waere dann z.b. baum B: b(4, empty, empty) also nur ein Knoten.

kechler
Mausschubser
Mausschubser
Beiträge: 46
Registriert: 21. Nov 2004 22:33
Wohnort: Darmstadt

Beitrag von kechler »

Ich habe es so gelöst, dass ich nur überprüfe, ob der Wert eines Knotens empty? ist.
Kannst es einfach mit (empty? (Binärbaum-Inhalt)) abfragen; Binärbaum-Inhalt ist ein Selektor für deine Struktur Binärbaum.
Denn ein Knoten, dessen Inhalt leer ist, also nicht existiert, und 2 Kinder hat ist sinnlos bzw. kein Baum mehr.

Benutzeravatar
E.d.u.
Nerd
Nerd
Beiträge: 633
Registriert: 3. Feb 2004 17:01
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von E.d.u. »

kechler hat geschrieben:Ich habe es so gelöst, dass ich nur überprüfe, ob der Wert eines Knotens empty? ist.
Kannst es einfach mit (empty? (Binärbaum-Inhalt)) abfragen; Binärbaum-Inhalt ist ein Selektor für deine Struktur Binärbaum.
Denn ein Knoten, dessen Inhalt leer ist, also nicht existiert, und 2 Kinder hat ist sinnlos bzw. kein Baum mehr.
hm aber soweit ich weiss, wenn ein Knoten kein info hat, muss nich zwangslaeufig bedeuten, dass er nicht "existiert".

Antworten

Zurück zu „Archiv“