예제 #1
0
        /// <summary>
        /// Faz a busca da aresta de menor peso do vertice
        /// </summary>
        /// <returns>Retorna aresta de menor peso</returns>
        public Aresta GetMenorAresta()
        {
            Aresta aMenor = null;

            this.arestas.ForEach(aItem =>
            {
                if (aMenor == null || aItem.GetPeso() < aMenor.GetPeso())
                {
                    aMenor = aItem;
                }
            });
            return(aMenor);
        }
예제 #2
0
 /// <summary>
 /// Compara a igualdade entre duas arestas comparando seus vértices e pesos
 /// </summary>
 /// <param name="aresta"></param>
 /// <returns></returns>
 public bool Equals(Aresta aresta)
 {
     try
     {
         Aresta comparar = (Aresta)aresta;
         return(comparar.getDadoVertice1.Equals(this.vertice1.GetDado()) &&
                comparar.getDadoVertice2.Equals(this.vertice2.GetDado()) &&
                comparar.GetPeso().Equals(this.peso));
     }
     catch
     {
         return(false);
     }
 }
예제 #3
0
        /// <summary>
        /// Procura por uma aresta na lista de arestas do vértice e retorna em qual posição da lista
        /// essa aresta está. Retorna -1 caso a aresta não exista na lista.
        /// </summary>
        /// <param name="aresta"></param>
        /// <returns></returns>
        public int getIndexAresta(Aresta aresta)
        {
            Aresta atual;

            for (int i = 0; i < this.arestas.Count; i++)
            {
                atual = (Aresta)this.arestas[i];
                if (atual.getValorVertice1.Equals(aresta.getValorVertice1) &&
                    atual.getValorVertice2.Equals(aresta.getValorVertice2) &&
                    aresta.GetPeso() == atual.GetPeso())
                {
                    return(i);
                }
            }
            return(-1);
        }