2016-07-19 7 views
0

Angenommen, ich habe den a-Baum in der verschachtelten Listendarstellung, wie durchquere ich ihn zuerst? Zum Beispiel bin, wenn ichWenn ein Baum in Form von verschachtelten Listen dargestellt wird, wie durchquere ich ihn zuerst?

[1, [2, [3, [4, [3, 5]]]], [3, [4, 5, 2]]] 

Der Ausgang [1,2,3,3,4,4,5,2,3,5] Auch gegeben wäre gegeben eine abgeflachte Darstellung der Tiefen erster Ordnung wie [1,2,3,4,3,5,3,4,5,2], wie finde ich die Indizes der Breiten erster Ordnung? Vielen Dank im Voraus für jede Hilfe.

+0

Was meinen Sie mit "die Indizes der Breite-erste Ordnung?" – templatetypedef

+0

Wenn also a = [1,2,3,4,3,5,3,4,5,2], würde ein [0,1,6,2,3,7,8,9,4,5] gib mir [1,2,3,3,4,4,5,2,3,5]. [0,1,6,2,3,7,8,9,4,5] sind die Indizes in diesem Fall. – Aditya369

Antwort

0

Hier ist der Code in Python:

queue = [1, [2, [3, [4, [3, 5]]]], [3, [4, 5, 2]]] 

while queue: 
    firstItem = queue.pop(0) 
    if type(firstItem) is list: 
     for item in firstItem: 
      queue.append(item) 
    else: 
     print('Traversed %d' % (firstItem)) 

Die Ausgabe lautet:

Traversed 1 
Traversed 2 
Traversed 3 
Traversed 3 
Traversed 4 
Traversed 5 
Traversed 2 
Traversed 4 
Traversed 3 
Traversed 5 

Nach meiner Ausgabe zu studieren und was Sie die Ausgabe angegeben in Ihrer Frage sein sollte, ich glaube, meine Ausgabe ist mehr richtig. Genauer gesagt, die am weitesten links 3 in der Eingabeliste und [4, 5, 2] am Ende der Eingabeliste sind auf der gleichen "Ebene", und sollte daher 3, 4, 5, 2 durchlaufen werden, wie von der 4. Zeile bis zur 7. Zeile meines Ausgangs gezeigt.


Was Ihre zweite Frage, ich denke, Sie eine separate Frage stellen sollte, weil es wirklich eine ganz andere Frage.

+0

Sie haben Recht mit der Ausgabe. Mein Fehler. Aber wenn ich es an diesem Eingang versuchte: [1, [2, [3, 4, [3, 5]], 3, [4, 5, 2]]] gibt es mir die folgende Ausgabe: [1, 2, 3, 3, 4, 5, 2, 4, 3, 5]. Sollte es nicht sein: [1, 2, 3, 3, 4, 4, 5, 2, 3, 5]? – Aditya369

+0

@ Aditya369 Ja, es sollte '[1, 2, 3, 3, 4, 4, 5, 2, 3, 5]' sein, und das ist, was ich bekomme, wenn ich es laufe ... – wookie919