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
Tutoria com IA
Converse com a Minerva IA e aprenda, tire dúvidas e resolva exercícios
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Prefere professores para aulas particulares ou resolução de atividades?
Aulas particulares
Encontre um professor para combinar e agendar aulas particulares Buscar professor
Tarefas
Envie sua atividade, anexe os arquivos e receba ofertas dos professores Enviar tarefa