"ID"フィールドと "名前"フィールドを持つテーブル "ノード"があります。また、ノードを多対多としてリンクするテーブル "リンク"もあります。Python。データベースから再帰的にグラフツリー
Node id | name 1 node1 2 node2 3 node3 4 node4 5 node5 6 node4 7 node5 Link id | node_id | node2_id 1 1 2 2 2 3 3 3 5 4 2 4 5 3 6 6 3 7 node4 node7 | | node1-->node2-->node3-->node6 | node5
このグラフ、リスト、またはディクテーションをネストして生成するにはどうすればよいですか? 私はアルゴリズムの構築に問題があります。私は関数get_derrivedを持って派生した要素のリストを返しました。私のコードは次のとおりです。合計で
c.tree = {}
def get_tree(node_id):
for node in get_derrived(node_id):
if not node in c.tree:
c.tree[node] = {}
get_tree(node.id)
get_tree(id)
Iがnode1を持っている:
c.tree = {ノード1:{}、NODE2:{}、ノード3:{}、ノード4:{}、NODE5:{ }、node6:{}、node7:{}} NODE2ため
:
c.tree = {NODE2:{}、ノード4:{}、ノード3:{}、NODE5:{}、node6。 {}、node7:{}}
しかし、私はdict {node2:{node4:{}、node3:{node7:{}、node5:{}、node6:{}}}}が必要です。