示例#1
0
        public Vertice encontrarVertice(String nome)
        {
            Vertice            aux       = new Vertice();
            NohLista <Vertice> percorrer = vertices.getInicio();

            bool encontrou = false;

            if (isEmpty())
            {
                return(null);
            }
            else
            {
                do
                {
                    if (percorrer.getData().getName().Equals(nome))
                    {
                        encontrou = true;
                        aux       = percorrer.getData();
                        break;
                    }
                    percorrer = percorrer.getNext();
                } while (percorrer != null);

                if (encontrou)
                {
                    return(aux);
                }
                else
                {
                    return(null);
                }
            }
        }
示例#2
0
        private void encontrarCaminho(Vertice percorrer, Vertice dest, Lista <Vertice> filaVisitar)
        {
            NohLista <Aresta> arestaAux = percorrer.getArestas().getInicio();
            Vertice           verticeDaAresta;

            //Laço para verificar se a distância parcial até aquele nó é menor que a já existente:
            do
            {
                int d = percorrer.getDistParcial() + arestaAux.getData().getDistance();
                verticeDaAresta = arestaAux.getData().getDestiny();

                if (d < arestaAux.getData().getDestiny().getDistParcial())
                {
                    verticeDaAresta.setDistParcial(d);
                    verticeDaAresta.setAntecessor(percorrer);
                    verticeDaAresta.setState(false);
                    filaVisitar.insereNoFim(verticeDaAresta);
                }

                arestaAux = arestaAux.getNext();
            } while (arestaAux != null);

            percorrer.setState(true);

            do
            {
                if (!filaVisitar.getInicio().getData().getState())
                {
                    encontrarCaminho(filaVisitar.getInicio().getData(), dest, filaVisitar);
                }
                else
                {
                    filaVisitar.remove(filaVisitar.getInicio().getData());
                }
            } while (filaVisitar.getInicio() != null);
        }