In-order-Traversierung eines Binärbaums

Eine In-order-Traversierung in einem Binärbaum ist ein rekursives Verfahren, bei dem zunächst der linke Teilbaum eines Knotens, dann der Knoten selbst und schließlich der rechte Teilbaum besucht werden:
  1. Besuche den linken Teilbaum (node.left)
  1. Besuche den aktuellen Knoten
  1. Besuche den rechten Teilbaum (node.right)
Man kann sich das so vorstellen, als würde man den Binärbaum an der Wurzel „aufhängen“ und seine Werte von links nach rechts ablesen.
Gegeben ist ein Binärbaum, für den Sie eine In-order-Traversierung durchführen sollen.

Eingabe

Die Eingabe enthält durch Leerzeichen getrennte ganze Zahlen, die die Werte in den Knoten des Binärbaums repräsentieren. Die Reihenfolge der Werte entspricht dabei einer Traversierung von linken zu rechten Teilbäumen. Ein Wert von 0 bedeutet, dass der Knoten nicht existiert. Es ist sichergestellt, dass der eingegebene Binärbaum gültig ist.

Ausgabe

Das Programm soll die Werte der Knoten in einem Binärbaum bei einer In-order-Traversierung ausgeben. Alle Werte sollen durch ein Leerzeichen getrennt werden.

Beispiele

Eingabe
Ausgabe
1 2 3 4 5 8 9 0 0 0 0 0 0 6 7 0 0 0 0
8 4 9 2 5 1 6 3 7
1 2 3 4 5 8 0 0 0 0 0 6 7 0 0 0 0
8 4 2 5 1 6 3 7
1 2 3 4 5 0 0 0 0 6 7 0 0 8 9 0 0 0 0
4 2 5 1 6 3 8 7 9
1 2 3 4 5 0 0 7 8 0 0 0 0 0 6 0 0
4 2 7 5 8 1 3 6

Erläuterung

  1. Beispiel 1:
    1. notion image
  1. Beispiel 2:
    1. notion image
  1. Beispiel 3:
    1. notion image
  1. Beispiel 4:
    1. notion image
 
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue