У меня есть график этой структуры:
G = {
'1':['100', '134', '1435'],
'145':['4', '2345', '253'],
'3773':['12'], '773':['1211', '629']}
График на самом деле очень большой, с 6378 узлами и 39932 ребрами.
Моя проблема в том, что график отключен, и я хочу, чтобы график был полностью связан без отключенного компонента.
Может кто-нибудь помочь мне с кодом Python, пожалуйста? Я бьюсь головой с воскресенья. Спасибо
def add_disconnected_nodes(Graph, begin):
gkey = []
cap_vertices = []
for vertex in Graph.keys():
gkey.append(vertex)
if begin in gkey:
begin = gkey[0]
for vertices in Graph.keys():
if vertices != begin and vertices not in Graph[begin]:
cap_vertices.append(vertices)
#Graph[begin] = [Graph[begin], cap_vertices]
Graph[begin] + cap_vertices
Graph.update()
return Graph
Я написал этот код, но он работал без ошибок. Тем не менее, это не сделает работу. Я знаю, что не делаю что-то правильно
РЕДАКТИРОВАНИЕ: Итак, я переписал код таким образом, теперь он выполняется вечно. Я выбрал начальную вершину в качестве ключа и каждый другой узел узла в значении этого ключа, я пытался добавить к значению. Возможно я делаю что-то не так; Кто-нибудь, пожалуйста, помогите мне!
def add_disconnected_nodes(Graph, begin):
if begin not in Graph:
return False
beg = {}
bbg = []
for vet in Graph.keys():
bbg.append(vet)
bba = []
while len(bbg) != 0:
for ls in bbg:
if ls != begin and ls not in Graph[begin]:
bba.append(ls)
bbg.remove(ls)
if len(bbg) == 0:
break
beg[begin] = Graph[begin] + bba
Graph.update(beg)
return Graph