6 Teilaufgaben · 1 Skelett

Box. Stopp. Kinder.

11 / 17

Deine Mission

Du löst drei Baumfunktionen und entlarvst drei kaputte Einfügefunktionen. Du musst nicht „C++ können“: Bei jeder Box fragst du dieselben drei Dinge.

  1. Stopp? Bin ich hinter einem Blatt?
  2. Arbeit? Was mache ich mit dieser Box?
  3. Kinder? Einen Pfad oder beide Teilbäume?

Dein einziger Startzug: Der rekursive Avatar landet rechts von 7 auf nullptr. Was muss passieren?

Genau einen Paritätspfad laufen

Regel: ungerade → links, gerade → rechts. Klicke die besuchten Boxen in Reihenfolge. Der Start ist oben.

Pfad: — · Länge: 0

Die Zahl entscheidet nur die Richtung. Sie wird trotzdem zur Pfadlänge gezählt.
7 ist ungerade: links zu 4. 4 ist gerade: rechts zu 5. 5 ist ungerade: links ist leer. Ergebnis: Länge 3.

Zur gleichen Höhe vervollständigen

Zielhöhe ist 3. Ergänze fehlende Boxen von oben nach unten mit Wert 0. Klicke jede gestrichelte Position, die benötigt wird.

9
4
6
„Vollständig“ ist hier laut Musterlösung: Bis zur vorhandenen Höhe hat jeder innere Knoten zwei Kinder. Die Höhe darf nicht wachsen.
Es fehlen vier Nullen: links-links, rechts sowie dessen zwei Kinder. Bei height <= 1 stoppst du, bevor neue Kinder entstehen.

Drei kaputte Einfügefunktionen

Ordne jedem Code die Situation und den Defekt zu. *& ist eine Referenz auf den echten Zeiger; ein normaler *-Zeiger in n ist nur eine lokale Kopie.

bad1 · baum_node*& n

bad2 · baum_node* n

bad3 · {nullptr,val,b->root}

Frage bei jeder Zuweisung: Ändert sie den echten Baum, nur die lokale Variable oder erzeugt sie einen Rückweg?
Zuordnung: bad1 → root verloren; bad2 → keine Einfügung; bad3 → Zyklus bei nichtleerem Baum.

Prüfungsabschluss

Formuliere das gemeinsame Skelett in einem Satz. Nenne ausdrücklich Basisfall und ob ein Pfad oder beide Teilbäume verfolgt werden.

Erst nach einem eigenen Abschlussversuch verfügbar.