Você está na página 1de 3

//utiliza uma lista singularmente encadeada, inserindo sempre no final e com um ponteiro para o anterior.

// #include<iostream> #include<cstdio> using namespace std; struct pessoa{ char nome[100]; char data[100]; int rg; int cpf; pessoa *anterior; }; class ListaLigada { private: pessoa *p; public: ListaLigada() { p =(pessoa *) NULL;} void inserir(); void consultar(); void remover(); }; void ListaLigada :: inserir() { pessoa *novapessoa = new pessoa; fflush(stdin); cout<< "Digite NOme: "; gets(novapessoa->nome); fflush(stdin); cout<<"Digite data de nascimento: "; gets(novapessoa->data); fflush(stdin); cout<<"RG: "; cin>> novapessoa->rg; cout<<"CPF: "; cin>>novapessoa->cpf; novapessoa->anterior = p; p = novapessoa;} void ListaLigada :: consultar (){ pessoa *q = p; pessoa *aux = new pessoa; cout<<"CPF da pessoa: "; cin>>aux->cpf; while(q != NULL) { if(q->cpf== aux->cpf) { cout<<"Nome: "<< q->nome<<endl; cout<<"Data: "<<q->data<<endl; cout<<"RG: "<<q->rg<<endl; cout<<"CPF: "<<q->cpf<<endl; break;} q = q->anterior; }

} void ListaLigada :: remover(){ pessoa *q = p, *s = p; pessoa *aux = new pessoa; cout<<"CPF da pessoa: "; cin>>aux->cpf; while(q != NULL) { if(q->cpf== aux->cpf) { cout<<"A pessoa removida foi: "<<end l; cout<<"Nome: "<< q->nome<<endl; cout<<"Data: "<<q->data<<endl; cout<<"RG: "<<q->rg<<endl; cout<<"CPF: "<<q->cpf<<endl; s->anterior = q->anterior; delete (q); break;} s = q; q = q->anterior;} }

int main(){ ListaLigada li; int opcao = 1; while(opcao){ cout<<endl; cout<<"(1)Inserir, (2)Consultar, (3)remover ou (0)sair: "; cin>>opcao; switch(opcao){ case 0: return 0; case 1: li.inserir(); break; case 2: li.consultar(); break; case 3: li.remover(); break; default: continue; } } cout<<endl; system("pause");

return 0; }

Você também pode gostar