Also habe ich gerade bei Cormen rot-schwarze Bäume gelernt und wow! Normalerweise verstehe ich gerne alle Algorithmen und Datenstrukturen bis zu dem Punkt, an dem ich sie von Grund auf neu erstellen kann, ohne den Pseudocode zu betrügen. Ich mag Algorithmen sehr, deshalb lerne ich gerne, wie sie funktionieren. Normalerweise gehe ich Zeile für Zeile und probiere einige Fälle aus, indem ich mir den Code ansehe und überprüfe, ob das, was passiert, das ist, was ich verstanden habe.
Nur zu verstehen, was passiert, hat mir viel Zeit für RB-Bäume gekostet. Trotz der Erklärungen des Buches fiel es mir immer noch schwer, den Code zu verstehen. Ganz zu schweigen davon, dass ich nicht verstehen konnte, wie / warum Rotationen funktionieren. Ich finde es überhaupt nicht intuitiv. Ich meine, die drei (eigentlich sechs) verschiedenen Fälle zum Einfügen und dann die 4 Fälle zum Löschen? Ist es möglich, diese Sache zu verstehen? Es ist unmöglich für mich, diesen Code ohne Schummeln neu zu erstellen. Bis zum Binärbaum konnte ich das Zeug aus meinem Kopf heraus implementieren, mit einigem Optimierungsaufwand würde es immer funktionieren, aber RB-Bäume werde ich nicht einmal versuchen. Ich meine, sogar der Lehrer war manchmal verwirrt, also denke ich, dass es wirklich nicht so einfach ist, aber sollten wir nicht gleichzeitig alles verstehen müssen, was passiert, oder zumindest warum? Das Buch hat nicht t wirklich erklären, wie jemand auf die Idee von Rotationen kam. Wie ist jemand aufgefallen, dass Sie mit 2 Umdrehungen ein Einfügeproblem lösen können? Das ist erstaunlich!
Meine Frage ist, muss ich RB-Bäume wirklich zu 100% verstehen? Ich fühle mich irgendwie schlecht, wenn ich Sachen überspringe, ohne es vollständig zu verstehen. Vielen Dank im Voraus Jungs! (PS: Es gibt kein Tag für RB-Tree, eigentlich nicht einmal für Tree, nur für Binary-Tree, also setze ich nur Algorithmen)