Foto de Karine S.
Karine há 5 anos
Enviada pelo
Site

Monte uma lista, uma fila e uma pilha (dev c++)

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!!!!!

Computação Geral Geral Geral Geral Linguagens de Programação Geral Geral
1 resposta
Professor Lucas M.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 5 anos
Contatar Lucas

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. 

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta

Envie sua pergunta

Aprenda do seu jeito, no seu ritmo

Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App
Escaneie o QR Code para baixar