public bool esIncidenteCon(CArista ari, CNodoVertice nodo_od) { bool encontrado = false; if (ari.getVOrigen().getId() == nodo_od.getVertice().getId() || ari.getVDestino().getId() == nodo_od.getVertice().getId()) encontrado = true; return encontrado; }
}//Construye la matriz a partir de la lista de adyacencia del grafo public bool esIncidenteCon(CArista ari, CNodoVertice nodo_od) { bool encontrado = false; if (ari.getVOrigen().getId() == nodo_od.getVertice().getId() || ari.getVDestino().getId() == nodo_od.getVertice().getId()) { encontrado = true; } return(encontrado); } //Verifica que existe incidencia en lista de adyacencia
public void kruskal() { Graphics g = Graphics.FromImage(G.getBMP()); g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; int n = G.getNumeroVertices(); CArista uv = null; List <CVertice> cv = null; List <CVertice> cu = null; foreach (CNodoVertice cnv in V) { List <CVertice> C = new List <CVertice>(); C.Add(cnv.getVertice()); componentes.Add(C); } while (T.Count <= (n - 1) && Q.Count != 0) { uv = Q[0]; Q.RemoveAt(0); cv = componenteQueContiene(uv.getVDestino()); cu = componenteQueContiene(uv.getVOrigen()); if (!cvIgualcu(cv, cu)) { T.Add(uv); foreach (CVertice v in cu) { cv.Add(v); } cu.Clear(); } } T.Sort(comparaArista); string cad = " Conjunto de Aristas\n\n T : {"; foreach (CArista a in T) { a.dibujateAACM(g, G.getBMP(), tp); cad += " (" + a.getVOrigen().getId().ToString() + "," + a.getVDestino().getId().ToString() + ") "; } cad += "}. "; MessageBox.Show(cad, "Árbol Abarcador de Costo Mínimo (Algoritmo de KRUSKAL)", MessageBoxButtons.OK, MessageBoxIcon.Information); g.Clear(Color.White); G.dibujate(tp, G.getBMP()); }