public void Euler() { bool camino = false; string cadena = ""; int pares = 0; int impares = 0; List <Arista> caminos; List <NodoP> circuit; foreach (NodoP np in grafo) { if (np.aristas.Count % 2 == 0) { pares++; } if (np.aristas.Count % 2 != 0) { impares++; } } if (pares == grafo.Count) // SI TODOS LOS NODOS SON DE GRADO PAR ENTONCES TIENE CIRCUITO EULERIANO { circuit = grafo.circuitoEuleriano(); circuito = circuit; foreach (NodoP np in circuit) { cadena += (char)(np.nombre + 64) + " >> "; } bpar = true; muestra = new MuestraCadena("Circuito Euleriano", cadena); muestra.Show(); muestra.timer1.Tick += Timer1_Tick; } else if (impares == 2) // SI TIENE DOS NODOS DE GRADO IMPAR, ENTONCES TIENE CAMINO EULERIANO { circuit = grafo.caminoEuleriano(); circuito = circuit; foreach (NodoP np in circuit) { cadena += (char)(np.nombre + 64) + " >> "; } bpar = true; muestra = new MuestraCadena("Camino Euleriano", cadena); muestra.Show(); muestra.timer1.Tick += Timer1_Tick; } else { MessageBox.Show("No tiene camino ni circuito Euleriano"); } }