Ir ao conteúdo

C++ Lista Simplesmente Encadeada //ERRO EXIBIÇÃO


Ir à solução Resolvido por GBMelkor,

Posts recomendados

Postado

Pessoal, não estou conseguindo exibir a lista resultante desta função:

TpPont * removerPar(TpPont *P){
	int elem = 0;
	while(!vazia(P)){
		P = P -> prox;
		if((P -> info)%2 == 0){
			P = retirar(P, elem);
		}
	}
	return P;
}

---

Também fiz do jeito abaixo, que deu certo e é exibido corretamente. Logo, o erro não está nas funções usadas ( retirar, inserir, vazia...):

TpPont * removerImpar(TpPont *P){
	int elem;
	TpPont *N = new TpPont;
	N = inicializar();
	
	while(!vazia(P)){
		if((P -> info%2) == 0){
			N = inserir(N, P -> info);
		}
		P = P -> prox;
	}
	delete(P);
	return N;
}

---

Imagino que seja algum erro de lógica, creio que, após percorrer toda a lista, a função retorna um ponteiro com valor null... O que vocês acham?

Postado

@Flávio Pedroza Não deu certo :/, mas entendi o que você quis dizer! O programa executa normalmente, apenas não exibe a lista... Essa é a função que exibe:


void exibir(TpPont *P){
	while(!vazia(P)){
		printf(" %d ", P -> info);
		P = P -> prox;
	}
}

Ela executa normalmente antes da chamada da função removePar, mas após isso, a lista é dada como "vazia", por isso suspeito que o valor do ponteiro seja NULL...

 

OBS: Já havia feito uma depuração, por isso sei que a lista é dada como vazia. O programa segue, entra na função exibir, faz a verificação do while, mas não entra nele.

  • Solução
Postado

Tópico fechado, não houve soluções para o problema especificado.

 

Código alternativo, para remoção de números ímpares de uma lista:

TpPont * removerImpar(TpPont *P){
	TpPont *N = new TpPont;
	N = inicializar();
	while(!vazia(P)){
		if((P -> info%2) == 0)
			N = inserir(N, P -> info);
		if (P != NULL) 
			P = P -> prox;
	}
	delete(P);
	return N;
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...