네트워크의 2 노드 사이에 연결이 있는지 찾고 싶습니다. check_connection 함수에서 어디서 잘못되었는지 알 수 없습니다! 도와주세요!2 개의 노드 사이의 연결이 존재합니다
b=0
def make_link(G, node1, node2):
if node1 not in G:
G[node1] = {}
(G[node1])[node2] = 1
if node2 not in G:
G[node2] = {}
(G[node2])[node1] = 1
return G
########### 왜이 기능은 무한대로 반복됩니까?
def check_connection(G, v1, v2):
# Return True if v1 is connected to v2 in G
# or False if otherwise
global b
for a in G[v1].keys():
if a==v2:
return True
if b==a:
continue
else:
b=v1
check_connection(G,a,v2)
return False
edges = [('a', 'g'), ('a', 'd'), ('g', 'c'), ('g', 'd'), ('b', 'f'), ('f', 'e'), ('e', 'h')]
G = {}
for v1, v2 in edges:
make_link(G, v1, v2)
print check_connection(G,edges[0][0],edges[4][1])
함수 내에서 함수 (check_connection (G, a, v2))를 호출했기 때문일 수 있습니까? –