Python: binärer Baum -> Probleme

Gast #1963715
Lesenswert?

Hallo allerseits!

Ich bin gerade dabei einen binäre Baum in Python zu programmieren.
Das ganze basiert auf einem Kompositum.

Es gibt eine Abstrakte Oberklasse "Baumelement" für die beiden 
Abschlüsse ( "AbschlussL" und "AbschlussR". Außerdem noch eine Klasse 
"Knoten" und "Baum"
Jetzt habe ich mich mal an der Methode "einfuegen" versucht aber es will 
eifnach nicht klappen. Ich muss ja am Anfang vergleichen ob mein 
einzufügendes element > oder < meiner wurzel ist. Doch genau immer mit 
dieser wurzel scheitere ich bzw. bringt er einen Fehler egal was ich 
mache. Wie könnte ich das mit der wurzel geschickt lösen?

Wäre wirklich sehr dankbar für Hilfe, da ich langsam echt keinen Nerven 
mehr hab :D
Angehängte Dateien:
Persönliche Seite #1963752
Lesenswert?

baum schrieb:
> Es gibt eine Abstrakte Oberklasse "Baumelement" für die beiden
> Abschlüsse ( "AbschlussL" und "AbschlussR". Außerdem noch eine Klasse
> "Knoten" und "Baum"
Hört sich kompliziert an ;)
> Ich muss ja am Anfang vergleichen ob mein
> einzufügendes element > oder < meiner wurzel ist.
Wenn du einen binären Suchbaum haben willst ist das Vorteilhaft...

Ich würde ein einziges "Element" nutzen, welches einen Wert, einen 
linken und einen rechten Nachbarn hat.

Ein Knoten zeichnet sich dann dadurch aus, das er einen linken oder 
rechten Nachbar hat, ein Blatt ein solches was keins von beidem hat.

Das hat den Vorteil, dass du immer mit der gleichen Datenstruktur 
arbeiten kannst und eventuell löst sich der "Knoten" mit der Wurzel auch 
von alleine auf ;)

(Ein Baum charakterisiert sich dann einfach indem du einen "root"/wurzel 
Knoten hast)
Gast #1964003
Lesenswert?

Ich würde es auch sehr gerne anders machen aber leider ist es so 
vorgegeben.(Aufgabenstellung). Ich muss genau diese Klassen nehmen und 
soll es so mit > und < machen. Aber Ich müsste ja eiegentlich nur den 
Benutzer aufforden eine Wurzel zu erstellen anhand deren string dann die 
anderen eingaben mit > oder < einsortiert werden. Nur iwie klappt es 
einfach nicht egal wie und wo ich eine Wurzel erstellen will bringt er 
einen Fehler. Entweder steh ich grad so auf dem Schlauch...
Gast #1964120
Lesenswert?

Dein Fehler tritt vermutlich eine Zeile vorher auf. Weil da wird in der 
Funktion ja "wurzel" verwendet, obwohl das noch nicht definiert ist. Du 
solltest für sowas nicht auf globale Werte zurückgreifen, sondern diese 
als Parameter übergeben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren