次の構造を持つスペースで区切られたツリーのようなデータを含むテキスト ファイルがあります: 'ブランチの数' 'ノードの名前' ... 0 (0 はそれ以上のブランチがないことを意味します) 例:
1 A 3 B 2 C 0
D 0
E 1 F 0
G 2 H 0
I 0
対応する辞書「ツリー」は次のようになります。
tree = {'A': {'B': {'C': {},
'D': {}},
'E': {'F': {}},
'G': {'H': {},
'I': {}}}}
再帰的な方法が正しい方法だと思いますが、機能させることができません。これまでのところ、次の機能があります。
def constructNodes(branch):
global nodes_temp
if not branch:
branch = deque(file.readline().strip().split())
node1 = branch.popleft()
nodes_temp.add(node1)
nbBranches = int(branch.popleft())
for i in xrange(nbBranches):
constructNodes(branch)
return nodes_temp
助けてくれてありがとう。