public Propiedades(List <CNodoVertice> lady, List <CArista> lari, CMatrizAdyacencia mady, CMatrizIncidencia mind, int na, int nv) { InitializeComponent(); DataTable mat_ady = new DataTable(); DataTable mat_inc = new DataTable(); object[] values = new object[lady.Count]; object[] values2 = new object[lari.Count]; int cont = 1; foreach (CNodoVertice cnv in lady) { mat_ady.Columns.Add("V" + cnv.getVertice().getId(), typeof(int)); } foreach (CArista ar in lari) { mat_inc.Columns.Add("E" + cont.ToString(), typeof(int)); cont++; } for (int i = 0; i < lady.Count; i++) { for (int j = 0; j < lady.Count; j++) { values[j] = mady.getMatriz()[i, j]; } mat_ady.Rows.Add(values); } for (int i = 0; i < lady.Count; i++) { for (int j = 0; j < lari.Count; j++) { values2[j] = mind.getMatriz()[i, j]; } mat_inc.Rows.Add(values2); } this.NAristasLabel.Text += na.ToString(); this.NVerticesLabel.Text += nv.ToString(); DGMatrizA.DataSource = mat_ady; DGMatrizI.DataSource = mat_inc; }
} //Valida matrices isomorficas public bool columnaYRenglonesIguales(CMatrizAdyacencia m1, CMatrizAdyacencia m2, int col_m1, int col_m2, int n) { bool iguales = false; int num_unos_columna_m1 = 0, num_unos_columna_m2 = 0; List <int> nuef_m1 = new List <int>(); List <int> nuef_m2 = new List <int>(); num_unos_columna_m1 = calculaUnosColumna(m1.getMatriz(), col_m1, n, ref nuef_m1); num_unos_columna_m2 = calculaUnosColumna(m2.getMatriz(), col_m2, n, ref nuef_m2); if (num_unos_columna_m1 == num_unos_columna_m2 && igualNuef(nuef_m1, nuef_m2)) { iguales = true; } return(iguales); }
public bool matricesIguales(CMatrizAdyacencia m1, CMatrizAdyacencia m2, int tam_mat) { bool band = true; for (int fila = 0; fila < tam_mat && band != false; fila++) { for (int columna = 0; columna < tam_mat; columna++) { if (m1.getMatriz()[fila, columna] != m2.getMatriz()[fila, columna]) { band = false; break; } } } return(band); } //Valida matrices isomorficas
public Propiedades(List<CNodoVertice> lady,List<CArista> lari, CMatrizAdyacencia mady,CMatrizIncidencia mind,int na,int nv) { InitializeComponent(); DataTable mat_ady = new DataTable(); DataTable mat_inc = new DataTable(); object[] values = new object[lady.Count]; object[] values2 = new object[lari.Count]; int cont = 1; foreach (CNodoVertice cnv in lady) mat_ady.Columns.Add("V" + cnv.getVertice().getId(), typeof(int)); foreach (CArista ar in lari) { mat_inc.Columns.Add("E"+cont.ToString(), typeof(int)); cont++; } for (int i = 0; i < lady.Count; i++) { for (int j = 0; j < lady.Count; j++) values[j] = mady.getMatriz()[i, j]; mat_ady.Rows.Add(values); } for (int i = 0; i < lady.Count; i++) { for (int j = 0; j < lari.Count; j++) values2[j] = mind.getMatriz()[i, j]; mat_inc.Rows.Add(values2); } this.NAristasLabel.Text += na.ToString(); this.NVerticesLabel.Text += nv.ToString(); DGMatrizA.DataSource = mat_ady; DGMatrizI.DataSource = mat_inc; }
public void aplicarIntercambioDeFilasYColumnas(ref CMatrizAdyacencia m, int col_m1, int col_m2, int n) { int[,] maux = copiaMatriz(m.getMatriz(), n); //Cambio columnas for (int i = 0; i < n; i++) { m.getMatriz()[i, col_m1] = maux[i, col_m2]; m.getMatriz()[i, col_m2] = maux[i, col_m1]; } maux = copiaMatriz(m.getMatriz(), n); //Cambio renglones for (int i = 0; i < n; i++) { m.getMatriz()[col_m1, i] = maux[col_m2, i]; m.getMatriz()[col_m2, i] = maux[col_m1, i]; } }
public void aplicarIntercambioDeFilasYColumnas(ref CMatrizAdyacencia m, int col_m1,int col_m2, int n) { int[,] maux = copiaMatriz(m.getMatriz(), n); //Cambio columnas for (int i = 0; i < n; i++) { m.getMatriz()[i, col_m1] = maux[i, col_m2]; m.getMatriz()[i, col_m2] = maux[i, col_m1]; } maux = copiaMatriz(m.getMatriz(), n); //Cambio renglones for (int i = 0; i < n; i++) { m.getMatriz()[col_m1, i] = maux[col_m2, i]; m.getMatriz()[col_m2, i] = maux[col_m1, i]; } }
public bool matricesIguales(CMatrizAdyacencia m1, CMatrizAdyacencia m2,int tam_mat) { bool band = true; for (int fila = 0; fila < tam_mat && band != false; fila++) { for (int columna = 0; columna < tam_mat; columna++) { if (m1.getMatriz()[fila, columna] != m2.getMatriz()[fila, columna]) { band = false; break; } } } return band; }
public bool columnaYRenglonesIguales(CMatrizAdyacencia m1, CMatrizAdyacencia m2, int col_m1, int col_m2, int n) { bool iguales = false; int num_unos_columna_m1 = 0, num_unos_columna_m2 = 0; List<int> nuef_m1 = new List<int>(); List<int> nuef_m2 = new List<int>(); num_unos_columna_m1 = calculaUnosColumna(m1.getMatriz(), col_m1, n, ref nuef_m1); num_unos_columna_m2 = calculaUnosColumna(m2.getMatriz(), col_m2, n, ref nuef_m2); if (num_unos_columna_m1 == num_unos_columna_m2 && igualNuef(nuef_m1,nuef_m2)) iguales = true; return iguales; }