public List <Arista> generarCamino(Vertice objetivo)
        {
            caminoString = "";
            List <Arista>    camino = new List <Arista>();
            ElementoDijkstra aux    = candidatos[objetivo.getID() - 1];

            while (aux.getActual().getID() != origen.getID())
            {
                if (aux.getActual() == null || aux.getProveniente() == null)
                {
                    camino.Clear();
                    return(camino);
                }
                camino.Add(encontrarVertice(aux.getActual(), aux.getProveniente()));
                aux = candidatos[aux.getProveniente().getID() - 1];
            }
            camino.Reverse();
            for (int i = 0; i < camino.Count; i++)
            {
                caminoString += camino[i].getOrigen().getID() + " ->";
            }

            caminoString += " " + objetivo.getID();
            return(camino);
        }
        private void factible(ElementoDijkstra aux)
        {
            int total = 0;

            for (int i = 0; i < aux.getActual().getLista().Count; i++)
            {
                total += aux.getPeso() + aux.getActual().getLista()[i].getPonderacion();
                //aux.getActual().getLista()[i]
                if (total < candidatos[aux.getActual().getLista()[i].getDestino().getID() - 1].getPeso())
                {
                    candidatos[aux.getActual().getLista()[i].getDestino().getID() - 1].setPeso(total);
                    candidatos[aux.getActual().getLista()[i].getDestino().getID() - 1].setProveniente(aux.getActual());
                }
                total = 0;
            }
        }