Pythonでツリーを実装するにはどうすればいいですか? 質問する

Pythonでツリーを実装するにはどうすればいいですか? 質問する

Python で一般的なツリーを実装するにはどうすればいいでしょうか? そのための組み込みデータ構造はありますか?

ベストアンサー1

お勧めします何でも(私は著者です)。

例:

from anytree import Node, RenderTree

udo = Node("Udo")
marc = Node("Marc", parent=udo)
lian = Node("Lian", parent=marc)
dan = Node("Dan", parent=udo)
jet = Node("Jet", parent=dan)
jan = Node("Jan", parent=dan)
joe = Node("Joe", parent=dan)

print(udo)
Node('/Udo')
print(joe)
Node('/Udo/Dan/Joe')

for pre, fill, node in RenderTree(udo):
    print("%s%s" % (pre, node.name))
Udo
├── Marc
│   └── Lian
└── Dan
    ├── Jet
    ├── Jan
    └── Joe

print(dan.children)
(Node('/Udo/Dan/Jet'), Node('/Udo/Dan/Jan'), Node('/Udo/Dan/Joe'))

何でも次のような強力な API も備えています:

  • シンプルなツリーの作成
  • 単純なツリーの変更
  • 事前順序ツリーの反復
  • 後順序ツリー反復
  • 相対および絶対ノードパスを解決する
  • あるノードから別のノードへ移動します。
  • ツリーレンダリング(上記の例を参照)
  • ノードの接続/切断接続

おすすめ記事