Seite 1 von 1

Delete Funktion bei Suchbäumen

Verfasst: Sonntag 24. April 2022, 22:09
von Marco98
Heyyy, kann mir jemand aufzeigen, wie eine Funktion zum Löschen von Einträgen in einem Suchbaum ausschaut.

Meine folgende Funktion schaut so aus:

Code: Alles auswählen

def delete(v,t):
    if v == empty():
        t[1] = empty()
        update_height(t)
        rotate(t)
        return t
    elif v > value(t):
        return delete(v,left(t))
    elif v > value(t):
        return delete(v,right(t))


t ist tree und v steht für value.
(empty, update und rotate sind jeweils eigene Funktionen)

Re: Delete Funktion bei Suchbäumen

Verfasst: Montag 25. April 2022, 10:18
von Sirius3
Wie schon im anderen Beitrag von Dir geschrieben, warum nutzt Du nicht gleich lesbare Variablennamen?
Wenn man eine Funktion schreibt, schreibt man gleichzeitig auch Test-Funktionen, die die Richtigkeit der Funktion testen. Wenn Du Tests hast, sollte es doch einfach sein, zu sagen, ob die von Dir geschriebene Funktion richtig ist, oder nicht. Wenn nicht, kannst Du gerne hier den gesamten Code inklusive Tests posten.

Re: Delete Funktion bei Suchbäumen

Verfasst: Montag 25. April 2022, 10:31
von __blackjack__
@Marco98: Wo ist denn das konkrete Problem? Wobei da natürlich auch ohne irgendwas vom Kontext zu wissen, ein sehr offensichtlicher Fehler ist, weil die letzte ``elif``-Bedingung keinen Sinn macht, wenn man sich die ``elif``-Bedingung davor anschaut.