Я пытаюсь проверить, остается ли график циклическим после удаления узла. В этой попытке я нажимаю клавишу и проверяю, удаляет ли этот узел все циклы или нет. Но, возможно, после первого всплывающего окна извлеченный элемент не вставляется
def detectCycle(v,visited,parent):
visited[v]=True
for i in Graph[v]:
if(visited[i]==False):
if(detectCycle(i,visited,v)):
return True
elif parent!=i:
return True
return False
def isCyclic():
visited=[False for i in range(N+1)]
for i in Graph.keys():
if(visited[i]==False):
if(detectCycle(i,visited,-1)==True):
return True
return False
Graph={1: [5, 2], 2: [5, 1, 3, 4], 3: [2], 4: [2], 5: [1, 2]}
N=len(Graph.keys())
flag=0
for i in range(1,N+1):
x=Graph.pop(i)
if(isCyclic()):
pass
else:
flag=1
break
Graph[i]=x
if(flag==1):
print(i)
else:
print(-1)
Я ожидаю, что узел, удаляющий цикл, удаляется, и если такой узел не существует, такой узел -1 не возвращается, как бы то ни было,
Traceback (most recent call last):
for i in Graph[v]:
KeyError: 1