Keyerror en grafos
Publicado por Cristian (1 intervención) el 22/05/2020 11:17:51
CÓDIGO:
El enunciado es realizar una busqueda en anchura de ese grafo, y recibo constantemente este error:
Por favor si alguien me ayuda se lo agradecería.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import os
grafo = {'2': [(1, 10), (3, 7)],
'1': [(2, 10), (3, 15), (6, 5)],
'3': [(1, 15), (2, 7), (4, 7), (6, 10)],
'6': [(1, 5), (3, 10), (4, 5), (5, 13)],
'4': [(3, 7), (5, 7), (6, 5)],
'5': [(4, 7), (6, 13)]
}
#MUESTRA EL GRAFO ANTES DEL RECORRIDO
print("Muestra el grafo antes del recorrido: \n")
for key, lista in grafo.items():
print(key)
print(lista)
print()
os.system("pause")
visitados = []
cola = []
origen = input("Ingresa el nodo origen: ")
print("\nLista de recorrido en anchura\n")
#Paso 1: SE COLOCA EL VÉRTICE ORIGEN EN UNA COLA
cola.append(origen)
#Paso 2: MIENTRAS LA COLA NO ESTE VACÍA
while cola:
#paso 3: DESENCOLAR UN VÉRTICE, ESTE SERÁ AHORA EL VÉRTICE ACTUAL
actual = cola.pop(0)
#paso 4: SI EL VÉRTICE ACTUAL NO HA SIDO VISITADO
if actual not in visitados:
#paso 5: PROCESAR (IMPRIMIR) EL VÉRTICE ACTUAL
print("Vertice actual -> ", actual)
#paso 6: COLOCAR VÉRTICE ACTUAL EN LA LISTA DE VISITADOS
visitados.append(actual)
#paso 7: PARA CADA VÉRTICE QUE EL VÉRTICE ACTUAL TIENE COMO DESTINO,
# Y QUE NO HA SIDO VISITADO:
# ENCOLAR EL VERTICE
for key, lista in grafo[actual]:
if key not in visitados:
cola.append(key)
print()
os.system("pause")
El enunciado es realizar una busqueda en anchura de ese grafo, y recibo constantemente este error:
1
2
3
4
5
6
7
8
Lista de recorrido en anchura
Vertice actual -> 2
Vertice actual -> 1
Traceback (most recent call last):
File "c:/Users/K/OneDrive/Escritorio/Ejercicios/Banchura.py", line 50, in <module>
for key, lista in grafo[actual]:
KeyError: 1
Por favor si alguien me ayuda se lo agradecería.
Valora esta pregunta


0