Circuito Euleriaro
Publicado por Yerson Alexis (1 intervención) el 24/03/2021 23:58:35
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import random
print ("Desarrollo Aplicativo")
Grafo = dict()
Grafo_variable = dict()
nodos = []
Conversion_nodos = []
print ('Numero de NODOS')
num_de_nodos = input()
num_de_nodos = int(num_de_nodos)
print ('Ingrese la lista de adyacencia para cada nodo y separe los elementos con comas (,)')
for i in range (num_de_nodos):
print ("nodo",i+1)
nodos = input()
nodos = str(nodos)
Conversion_nodos = list(nodos)
Grafo[i+1] = Conversion_nodos
Grafo_variable = Grafo
num_aristas = 0
num_elementos_list = len(Grafo)
nodo_inicio = random.randint(1,num_elementos_list)
Solucion = []
print ('El nodo de inicio del circuito es' ,nodo_inicio)
valencia_nodos = 0
ultimo_nodo_borrado = 0
Solucion.append(nodo_inicio)
for i in Grafo:
num_aristas += len(Grafo[i])
num_aristas = num_aristas/2
num_aristas_var = num_aristas
while(num_aristas_var != 0):
nodo = nodo_inicio
valencia_nodos = 0
check_nodo = 0
for i in Grafo_variable[ nodo ]:
for j in Grafo_variable[ nodo ]:
if j != 0:
valencia_nodos += 1
if valencia_nodos == 0 & num_aristas_var <= 1:
for i in Grafo_variable[ Solucion[-1] ]:
if i == 0:
Grafo_variable[ Solucion [-1] ][ Grafo_variable[ Solucion [-1] ].index( i ) ] = Solucion[ -2 ]
break
for i in Grafo_variable[ Solucion[-2] ]:
if i == 0:
Grafo_variable[ Solucion [-2] ][ Grafo_variable[ Solucion [-2] ].index( i ) ] = Solucion[ -1 ]
break
ultimo_nodo_borrado = Solucion.pop()
num_aristas_var += 1
valencia_nodos = 0
for j in Grafo_variable[ Solucion[-1] ]:
if j != 0:
valencia_nodos += 1
if valencia_nodos == 1:
while valencia_nodos == 1:
for i in Grafo_variable[ Solucion[-1] ]:
if i == 0:
Grafo_variable[ Solucion [-1] ][ Grafo_variable[ Solucion [-1] ].index( i ) ] = Solucion[ -2 ]
break
for i in Grafo_variable[ Solucion[-2] ]:
if i == 0:
Grafo_variable[ Solucion [-2] ][ Grafo_variable[ Solucion [-2] ].index( i ) ] = Solucion[ -1 ]
break
ultimo_nodo_borrado = Solucion.pop()
num_aristas_var += 1
valencia_nodos = 0
for j in Grafo_variable[ Solucion[-1] ]:
if j != 0:
valencia_nodos += 1
nodo_inicio = Solucion[ -1 ]
break
else:
nodo_inicio = Solucion[ -1 ]
break
else:
if i != 0 and i != ultimo_nodo_borrado:
ultimo_nodo_borrado = 0
for k in Grafo_variable [ nodo ]:
if k == i:
Grafo_variable[ nodo ][ Grafo_variable[ nodo ].index( k ) ] = 0
for l in Grafo_variable [ i ]:
if l == nodo:
Grafo_variable[ i ][ Grafo_variable[ i ].index( l ) ] = 0
num_aristas_var -= 1
nodo_inicio = i
valencia_nodos = 0
Solucion.append(i)
break
print ('El circuito de EULER es:',Solucion)
print (Solucion)
No me permite imprimir la SOLUCION, ayuda
Valora esta pregunta


0