P
User1291 schrieb:
philipp2100 schrieb:
Du hast vergessen, newBST() zu posten. traverse() fehlt auch.
Die hab ich wie gesagt, als nicht-problemrelevant weggelassen.
Und ich wusste, dass sie nicht problemrelevant sind, weil ohne Löschoperationen alles funktionierte.
Selbst wenn man drauf vertraut, dass das wirklich stimmt (deine Tests also ausgiebig genug waren), heißt es immer noch nicht, dass die nicht problemrelevant sind. In deinem Testcode, der ja ein wertvoller Anhaltspunkt ist, arbeitest du mit den Funktionen, um den nachzuvollziehen, muss man die also sehen. Wie soll ich sonst wissen, was in dem *bst genau gespeichert ist, z.B.?
User1291 schrieb:
den Code allgemein lesbarer und symmetrischer zu machen
Was meinst du mit "symmetrisch"?
Das die beiden Teile, die du mit "find symmetric ..." kommentiert hast, symmetrisch sind, also einmal der Fall mit < und einmal der Fall > abgedeckt wird mit dem gleichen Code (nur right und left, < und > usw. vertauscht), und weitere Fälle in extra Codeblöcken. Dann kannst du dir nämlich das goto sparen.
User1291 schrieb:
Wie würdest du dir "lesbarer" vorstellen?
Das oben gesagte, auch sonst gotos vermeiden und noch ein paar kleinere Sachen wie an manchen Stellen aussagekräftigere Variablennamen (node statt it), und überflüssige Klammern weglassen. Und immer schön geradlinig bleiben, nicht so um die Ecke denken wie bei deiner goto-Fummelei..
Ansonsten kann und muss ich SeppJ uneingeschränkt Recht geben.
User1291 schrieb:
Der Fehler ist übrigens gefunden, Linie 69 im bst.c fehlte.
Schön!