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); } } }
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); }