public override void Update() { int NComponents; if (Grafo != null) { NComponents = Grafo.NumVertices() + Grafo.NumArestas(); Box.Text = " Nome: " + Grafo.name + "\n" + " Componentes: " + NComponents + "\n" + " Numero de Arestas: " + Grafo.NumArestas() + "\n" + " Numero de Vertices: " + Grafo.NumVertices(); } else { Box.Text = "Sem registros de dados"; } }
public void SetGrafo(Grafo g) { Grafo = g; int NComponents = g.NumVertices() + g.NumArestas(); Box.Text = " Nome: " + Grafo.name + "\n" + " Componentes: " + NComponents + "\n" + " Numero de Arestas: " + Grafo.NumArestas() + "\n" + " Numero de Vertices: " + Grafo.NumVertices(); }
//TODO analise de desempenho public override void Update() { if (Grafo != null) { int NComponents = Grafo.NumComponents(); Box.Text = " Nome: " + Grafo.name + "\n" + " Componentes: " + NComponents + "\n" + " Numero de Arestas: " + Grafo.NumArestas() + "\n" + " Numero de Vertices: " + Grafo.NumVertices() + "\n" + " Densidade: " + Grafo.Densidade() + "\n" + " Grau Médio: " + Grafo.GrauMedio(); } else { Box.Text = "Calculos nao Efetuados"; } }
/// <summary> /// Constructor /// </summary> /// <param name="grafo"> Graph</param> public AdjList(Grafo grafo) { Adj = new List <List <int> >(); N = grafo.NumVertices(); M = grafo.NumArestas(); while (Adj.Count < N) { Adj.Add(new List <int>()); } foreach (var aresta in grafo.Arestas) { Adj[aresta.vertice1._id].Add(aresta.vertice2._id); if (!grafo.isDigraph) { Adj[aresta.vertice2._id].Add(aresta.vertice1._id); } } }
/// <summary> /// Updates all adjacences from Graph /// </summary> /// <param name="grafo"></param> public void Update(Grafo grafo) { N = grafo.NumVertices(); M = grafo.NumArestas(); while (Adj.Count < N) { Adj.Add(new List <int>()); } foreach (var aresta in grafo.Arestas) { if (!Adj[aresta.vertice1._id].Contains(aresta.vertice2._id)) { Adj[aresta.vertice1._id].Add(aresta.vertice2._id); if (!grafo.isDigraph) { Adj[aresta.vertice2._id].Add(aresta.vertice1._id); } } } }
/// <summary> /// Returns Matrix /// </summary> /// <returns></returns> public float[,] get_matrix() { float[,] res = new float[grafo.NumVertices(), grafo.NumVertices()]; for (int i = 0; i < grafo.NumVertices(); i++) { for (int j = 0; j < grafo.NumVertices(); j++) { if (is_bounded(grafo.BuscaVertice(i), grafo.BuscaVertice(j))) { res[i, j] = grafo.BuscaAresta($"{i} {j}").Peso; } else { res[i, j] = 0; } } } return(res); }