-1
で二つの文
def BFS(self, rootnode): 
    visited = [] 
    queue = [] 
    queue.append(rootnode) 
    while queue: 
     print(type(queue)) 
     curr_node = (queue.pop()) 
     for node in curr_node.nodes: 
      if node not in visited: 
       visited.append(node) 
       queue.append(node) 

....印刷タイプ(オブジェクト)は、Pythonの

こんにちはを返しますので、私は、このトライオブジェクトを反復処理しようとしていますが、私はトラブルその値を反復を持っています。データ構造はノードを保持し、 各ノードは1つの文字値とその子(ノード= {}に保持されている)のdictという2つの値を保持します。

現在、AttributeErrorが表示されています。strには、「curr_node.nodesのノード」という行に属性ノードがありません。 理由を理解できないようです。私はタイプNodeを返すルートノードのタイプをチェックしました。クラスdictを返したキューのノードオブジェクトの最初の値の型を調べました。しかし、私はそのdictを反復しようとすると 私は属性のエラーを取得します。 *私は、dictの各キーがノードとペアになっていることも知っています。

私は正しくdictsを繰り返していますか?ここで

*は、最初の呼び出しは、どこに問題伝えるそのハード、ノードのクラス定義を見ることなく trie.BFS(trie.root.nodes [ '#'])

おかげ

+1

"キューのノードオブジェクトの最初の値のタイプを確認しました" - 何をお話していますか? 'type(queue)'だけを表示しました。 – user2357112

+0

申し訳ありませんが、省略されたコード行です:クラスdictを返した 'print(type(queue [0] .nodes))'をタイプしました – tadpolili

答えて

0

ですです。しかし、私が推測しなければならない場合、curr_node.nodesにはstr値が含まれています。

次のわずかな変更助けてください。

if node not in visited and not isinstance(node,str):       
    visited.append(node) 
    queue.append(node) 

また、訪問した場合はより効率的です。