2016-07-19 1 views
0

ツリーをネストされたリスト表現で与えたとします。私は、出力も [1,2,3,3,4,4,5,2,3,5] だろうネストされたリストの形で表現されたツリーがある場合、どのようにそれを横断するのですか?

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

を与えられていた場合、[1,2,3,4,3,5,3,4,5,2]のような深さ優先順の平坦化された表現を指定して、どのように私は幅優先順のインデックスを見つけるのですか? ご協力いただきありがとうございます。

+0

「幅優先の指数」とはどういう意味ですか? – templatetypedef

+0

したがって、a = [1,2,3,4,3,5,3,4,5,2]の場合、a [0,1,6,2,3,7,8,9,4,5]は私に[1,2,3,3,4,4,5,2,3,5]を与えてください。 [0,1,6,2,3,7,8,9,4,5]はこの場合の指標です。 – Aditya369

答えて

0

ここでは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)) 

出力は次のとおりです。

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

私の出力と何が出力さあなたの質問にする必要があり、指定さを学んだ後、私は私の出力は、より多くのだと思いますが、正しい。具体的には、入力リストの左端の3と入力リストの末尾の[4, 5, 2]は同じ「レベル」にありますので、出力の4行目から7行目に示すように、3, 4, 5, 2を横断する必要があります。


2番目の質問については、本当に全く異なる質問であるため別の質問をする必要があります。

+0

あなたは出力について正しいです。私の悪い。しかし、この入力で試したところ、 [1、[2、[3、4、[3,5]]、3、[4,5,2]]] 1,2,3,3,4,5,2,4,3,5]である。それはしないでください: [1,2,3,3,4,4,5,2,3,5]? – Aditya369

+0

@ Aditya369はい、それは '[1、2、3、3、4、4、5、2、3、5]'でなければなりません。 – wookie919

関連する問題