나는 "ID"와 "이름"필드를 가진 "Node"테이블을 가지고 있으며, 또한 many-to-many처럼 노드 사이를 연결하는 "Link"테이블을 가지고있다.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
이 그래프, 목록 또는 중첩 된 dict을 생성하려면 어떻게 파이썬을 사용합니까? 알고리즘 구성에 문제가 있습니다. get_derrived 함수는 파생 된 요소의 목록을 반환했습니다. 내 코드는 다음과 같습니다
c.tree = {노드 1 : {}, 노드 2 : {}, 노드 3 : {}, 노드 4 : {}에 Node5 : 합계에서
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)
내가 노드 1에 대한이 { } node6 {} node7 {}} 노드 2에 대한
:
c.tree 노드 2 = {{}, 노드 4 : {} 노드 3 : {}에 Node5 {} node6 : {}, node7 : {}}
하지만 dict {node4 : {}, node3 : {node7 : {}, node5 : {}, node6 : {}}}}이 필요합니다.