Suchbaum
unter der Lupe
Mission
Du steuerst den Baum selbst. Finde erst den größten Wert, dann den schwersten Wurzel-Blatt-Pfad und seine Länge. Zum Schluss schneidest du den Baum auf eine Höhe zurück.
Knoten = eine Box. Wurzel = oberste Box. Blatt = Box ohne Kinder. Höhe und Pfadlänge zählen hier Knoten.
struct sb_node {
sb_node* left; // linkes Kind
unsigned int val; // positiver Wert
sb_node* right; // rechtes Kind
};
struct suchbaum { sb_node* root; };
// vorhanden und benutzbar:
void sb_clear(sb_node* n);
Direkte Manipulation
Klicke deinen Weg
Start: Wo liegt im Suchbaum das maximale Element?
Maximum im Suchbaum
Klicke oben im Baum den Weg von der Wurzel zum maximalen Element.
Maximale Pfadsumme
Jetzt zählen vollständige Pfade von der Wurzel bis zu einem Blatt. Welcher Ast gewinnt?
max(links, rechts).Länge des schwersten Pfads
Die Hilfsfunktion muss Summe und Länge nach oben tragen. Ergänze den Rückgabewert für einen leeren Teilbaum.
if (n == nullptr) return paar{,};first speichert die Summe, second die Anzahl der Knoten. Beide neutralen Werte sind 0.Trim auf Höhe 2
Klicke im Baum alle Knoten an, die entfernt werden müssen, damit nur zwei Ebenen bleiben.
sb_clear gelöscht und beide Zeiger auf nullptr gesetzt.Prüfungsabschluss: kompletter Code
Erst nach allen vier Werkstatt-Schritten wird die vollständige Musterlösung freigegeben.
Wie sitzt Aufgabe 12?
Noch nicht markiert.