bool ListaAdjacente::addLast(int id, int forca) { Aresta * p = new Aresta(); p->setId(id); p->setForca(forca); if(vazia()){ origem = p; fim = p; } else { if(hasInList(id)){ return false; } Aresta * aux = new Aresta(); aux = fim; aux->setProx(p); fim = p; } size++; return true; }
void ListaAdjacente::removeByIndex(int pos){ if(origem == NULL) return; if(origem->getId() == pos){ removeFirst(); return; } Aresta * p = origem; while(p->getProx() != NULL && p->getProx()->getId() != pos) p = p->getProx(); if (p->getProx() == NULL) return; Aresta * aux = p->getProx(); p->setProx(aux->getProx()); --size; delete aux; }