Boa Noite!
Então acabei escrevendo meu código mas tem uma coisa dando errado na exclusão da lista deveria ser na Exclusão- realoca os valores da LISTA após a exclusão. O usuário informa o valor a ser excluído; mas não é assim que acontece ele exclui o primeiro sempre da lista.
Ajude-Me por Favor!!!!!
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
void remover()
{
if(!vazia())
{
// se houver só 1 elemento
if(cabeca->obterProx() == NULL)
cabeca = NULL;
else if(cabeca->obterProx()->obterProx() == NULL) // 2 elementos
cabeca->setProx(NULL);
else // > 2 elementos
{
No* ant_ant = cabeca;
No* ant = cabeca->obterProx();
No* corrente = cabeca->obterProx()->obterProx();
while(corrente)
{
No* aux = ant;
ant = corrente;
ant_ant = aux;
corrente = corrente->obterProx();
}
delete ant_ant->obterProx(); // libera memória
ant_ant->setProx(NULL); // seta o prox como NULL
cauda = ant_ant; // atualiza a cauda
}
}
}
Você precisa setar último valor como NULL para que quando o chegue na cauda e atualize. Peça ao usuário infrormar o valor excluído antes de liberar da memória.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.