2016-04-12 21 views
0

Kürzlich stieß ich in einem Interview auf eine Frage "Drucke einen kompletten Binärbaum in konzentrischen Kreisen".Binärer Baum in konzentrischen Kreisen

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

sollte die Ausgabe

sein, mir
1 2 4 8 9 0 1 2 3 4 5 7 3 
5 6 

Könnte jemand helfen, wie wir dieses Problem lösen können?

+2

Bis Sie zeigen, was Sie versucht haben, und wie es nicht funktioniert hat, ist es nur eine andere "Gib mir die Codez" -Frage. –

+0

Hey, es sollte 6 5 und nicht 5 6 sein. –

Antwort

0

Hier ist, wie Sie das Problem angehen können. Ordnen Sie den Baum von Ebenen:

1 
2, 3 
4, 5, 6, 7 
8, 9, 0, 1, 2, 3, 4, 5 

Also die Daten, die Sie haben, ist k Ebenen L1, L2, ..., Lk. Beantworten Sie nun diese Fragen: Nachdem wir einen Schritt ausgeführt haben, also wenn ein Kreis durchlaufen wurde, wie würden die Baumebenen aussehen, nachdem die Polygonzugelemente aus den Ebenen entfernt wurden? Wie sollte ich die Ebenen ändern und welche Elemente sollte ich drucken, so dass es so aussieht, als ob ich im Kreis gegangen bin?

In Ihrem Beispiel nach dem ersten Schritt würden die Ebene nur geändert:

5, 6 

Was war die Operation, die ausgeführt wurde?

Nachdem Sie die Fragen beantwortet haben, wenden Sie den gleichen Vorgang mehrmals an, bis Sie alle Elemente gedruckt haben.