private void recorridoNodoProfundidad(vertice vertice, Graphics g) { vertice.Visitado = true; vertice.colorear(g); Thread.Sleep(1000); vertice.DibujarVertice(g); foreach (arco adya in vertice.ListaAdyacencia) { if (!adya.nDestino.Visitado) { recorridoNodoProfundidad(adya.nDestino, g); } } }
private void recorridoNodoAnchura(vertice vertice, Graphics g, string destino) { vertice.Visitado = true; cola.Enqueue(vertice); vertice.colorear(g); Thread.Sleep(1000); vertice.DibujarVertice(g); if (vertice.Valor == destino) { nodoEncontrado = true; return; } while (cola.Count > 0) { vertice aux = (vertice)cola.Dequeue(); foreach (arco adya in aux.ListaAdyacencia) { if (!adya.nDestino.Visitado) { if (!nodoEncontrado) { adya.nDestino.Visitado = true; adya.nDestino.colorear(g); Thread.Sleep(1000); adya.nDestino.DibujarVertice(g); if (destino != "") { distancia += adya.peso; } cola.Enqueue(adya.nDestino); if (adya.nDestino.Valor == destino) { nodoEncontrado = true; return; } } } } } }