Ir para conteúdo
Fórum Script Brasil
  • 0

Lista Simplesmente Encadeada


Deley15

Pergunta

Olá Pessoal!

Estou com um probleminha qnado vou excluir minha lista!

quando eu digito o cpf desejado ele não encontra para a eclusão!

Alguém pode me ajudar?

Código fonte!

#include <iostream.h>

#include <string.h>

#include <stdlib.h>

#include <stdio.h>

//Declaração da estrutura

struct lista {

char CPF[15];

char Nome[40];

char Endereco[40];

char Bairro[25];

char Cidade[25];

char Estado[2];

char Cep[10];

char Tel[12];

char Email[30];

struct lista* proximo;

};

lista* inserirValores(lista* no){

lista* novono = new lista;

system("CLS");

cout<<"Informe os valores para preenchimento da lista\n";

cout<<"\n\tCPF: ";

cin>>novono->CPF;

cout<<"\tNome: ";

cin>>novono->Nome;

cout<<"\tEndereco: ";

cin>>novono->Endereco;

cout<<"\tBairro: ";

cin>>novono->Bairro;

cout<<"\tCidade: ";

cin>>novono->Cidade;

cout<<"\tEstado: ";

cin>>novono->Estado;

cout<<"\tCep: ";

cin>>novono->Cep;

cout<<"\tTel: ";

cin>>novono->Tel;

cout<<"\te-mail: ";

cin>>novono->Email;

novono->proximo=no;

return novono;

}

void exibirLista(lista* no){

int i=1;

lista* auxiliar = new lista;

system("CLS");

cout<<"Elementos da lista\n";

for (auxiliar = no; auxiliar != NULL; auxiliar=auxiliar->proximo){

cout<<"\nElemento : "<<i;

cout<<"\nCPF : "<<auxiliar->CPF;

cout<<"\nNome : "<<auxiliar->Nome;

cout<<"\nEndereco : "<<auxiliar->Endereco;

cout<<"\nBairro : "<<auxiliar->Bairro;

cout<<"\nEstado : "<<auxiliar->Estado;

cout<<"\nCep : "<<auxiliar->Cep;

cout<<"\nTel : "<<auxiliar->Tel;

cout<<"\ne-mail : "<<auxiliar->Email;

}

cout<<"\n";

system("PAUSE");

return;

}

lista* retiraElemento(lista* no){

char cpf[15],i=1;

lista* ant = NULL;

lista* auxiliar = no;

system("CLS");

cout<<"Qual CPF deseja excluir? ";

cin>>cpf;

while ((auxiliar != NULL) && (auxiliar->CPF != cpf)){

ant = auxiliar;

auxiliar = auxiliar->proximo;

i++;

}

if (auxiliar == NULL){

cout<<"\nCPF não encontrado";

system("PAUSE");

return no;

}

cout<<"Elemento encontrado:\n\n";

cout<<"Elemento: "<<i<<"\tCPF: "<<auxiliar->CPF<<"\tNome: "<<auxiliar->Nome;

system("PAUSE");

if (ant == NULL){

no = auxiliar->proximo;

}

else{

ant->proximo=auxiliar->proximo;

}

free(auxiliar);

return no;

}

void main(){

lista* no = new lista;

no = NULL;

int op;

do{

system("CLS");

cout<<"Lista Simplesmente Encadeada\n\n Menu:\n\n";

cout<<"\t1 - Inserir valores na lista\n";

cout<<"\t2 - Exibir a lista completa\n";

cout<<"\t3 - Retirar um elemento da lista\n";

cout<<"\t4 - Sair do programa";

cout<<"\n\nInforme sua opcao=> ";

cin>>op;

switch(op){

case 1: no = inserirValores(no);break;

case 2: exibirLista(no);break;

case 3: no = retiraElemento(no);break;

case 4: break;

}

}while (op != 4);

no = NULL;

free(no);

system("Pause");

}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

voce tem que lembrar que CPF é um vetor de caracteres, e para comparacao de vetores de caracteres(strings), voce pode usar a funcão strcmp

   while ((auxiliar != NULL) && ( strcmp(auxiliar->CPF, cpf) ))

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...