Delete Funktion bei Suchbäumen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Marco98
User
Beiträge: 3
Registriert: Donnerstag 21. April 2022, 22:53

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)
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten