コード例 #1
0
        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";
            }
        }
コード例 #2
0
        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();
        }
コード例 #3
0
 //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";
     }
 }
コード例 #4
0
        /// <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);
                }
            }
        }
コード例 #5
0
        /// <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);
                    }
                }
            }
        }
コード例 #6
0
 /// <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);
 }