[Python-de] binaerer Baum in Python

Martin v. Loewis martin at v.loewis.de
Sat Oct 27 12:05:49 EDT 2001


> Nach meinen Schema würde das Ganze folgendermaßen ablaufen:
> 
> 1. Liste "sein" erzeugen
> 2. Liste "oder" erzeugen und als rechter Sohn von Liste "sein" einordnen.
> 3. Liste "nichtsein" erzeugen und als linker Sohn von Liste "sein" einordnen.
> 4. Liste "das" erzeugen und als linker Sohn von Liste "oder" einordnen
> 5. Liste "ist" erzeugen und als rechter Sohn von Liste "das" einordnen
> 6. Liste "hier" erzeugen und als linker Sohn von Liste "ist" einordnen
> 7. Liste "die" erzeugen und als linker Sohn von Liste "hier" einordnen
> 8. Liste "Frage" erzeugen und als linker Sohn von Liste "Nichtsein einordnen.
> 
> Tja das Funktioniert so leider nicht. Denn die einzelnen Listen haben in den 
> Listen keinen Namen und lassen sich auch nicht erzeugen (Habe ich zumindest 
> nicht rausgefunden). Außerdem wird das einfügen der Listen mit zunehmender 
> Tiefe immer aufwendiger und unübersichtlicher. 

Klar haben die Elemente einer Liste Namen, nur dass die Namen keine
Strings sind, sondern "Index" heissen und Zahlen sind. Deshalb ist es
am besten, wenn man schon "vorab" einen "Namen", also einen Index für
den rechten und linken Sohn vorsieht. Solange man keinen hat, nimmt
man einfach None. Als Positionen schlage ich "wert"=0, "links"=1,
rechts="2" vor.

Damit ergibt sich

1. root = sein = ["sein", None, None]
2. oder = ["oder", None, None]; root[2] = oder
3. nichtsein = ["nichtsein", None, None]; sein[1] = nichtsein
   Alternativ hier, damit wir nur die Wurzel halten müssen:
   root[2][1] = nichtsein
usw.

HTH,
Martin



More information about the Python-de mailing list