public void insereNoFim(TAD n) { NohLista <TAD> aux = new NohLista <TAD>(n); if (isEmpty()) { inicio = aux; fim = aux; } else { aux.setPrior(fim); fim.setNext(aux); fim = aux; } }
public void inserirAntes(TAD elemento, TAD inserir) { NohLista <TAD> novoNoh = new NohLista <TAD>(inserir); if (isEmpty()) { inicio = novoNoh; fim = novoNoh; } else { NohLista <TAD> aux = inicio; bool encontrou = false; do { if (aux.getData().Equals(elemento)) { encontrou = true; break; } else { aux = aux.getNext(); } } while (aux != null); if (encontrou) { if (aux == inicio) { novoNoh.setNext(aux); aux.setPrior(novoNoh); inicio = novoNoh; } else { novoNoh.setPrior(aux.getPrior()); novoNoh.setNext(aux); aux.setPrior(novoNoh); novoNoh.getPrior().setNext(novoNoh); } } else { Console.WriteLine("Item não Encontrado!!"); } } }
public void imprime() { if (isEmpty()) { Console.WriteLine("Lista vazia - Impossível Imprimir!"); } else { NohLista <TAD> aux = new NohLista <TAD>(); aux = inicio; Console.Write("Lista: "); do { Console.Write(aux.getData() + " "); aux = aux.getNext(); } while (aux != null); } }
public String encontrarCaminho(String orig, String dest) { Vertice origV = encontrarVertice(orig); Vertice destV = encontrarVertice(dest); Lista <Vertice> fila = new Lista <Vertice>(); fila.insereNoFim(origV); NohLista <Vertice> percorrer = vertices.getInicio(); do { if (percorrer.getData().Equals(origV)) { percorrer.getData().setDistParcial(0); percorrer.getData().setState(false); } else { percorrer.getData().setDistParcial(infinito); percorrer.getData().setState(false); } percorrer = percorrer.getNext(); } while (percorrer != null); encontrarCaminho(origV, destV, fila); origV = encontrarVertice(orig); destV = encontrarVertice(dest); Vertice percVertices = destV; String caminhoFinal = percVertices.getName() + "(" + percVertices.getDistParcial().ToString() + "km)" + "\n"; do { percVertices = percVertices.getAntecessor(); caminhoFinal = percVertices.getName() + "(" + percVertices.getDistParcial().ToString() + "km)" + " -> " + caminhoFinal; } while (percVertices != origV); return(caminhoFinal); }
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); }
public void setNext(NohLista <TAD> noh) { this.next = noh; }
public void setPrior(NohLista <TAD> noh) { this.prior = noh; }
public void setFim(NohLista <TAD> noh) { this.fim = noh; }
public void setInicio(NohLista <TAD> noh) { this.inicio = noh; }