Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Clique para editar o estilo do título mestre Clique para editar o estilo do subtítulo mestre * * * Lista Duplamente Encadeada – LDE Implementação * * * #include <iomanip.h> #include <stdlib.h> #include <string.h> // Tipo de cada elemento da LDE struct LDE{ int c; char s[200]; struct LDE *prox, *ant; }*prim, *ult, *aux; // Assinaturas das funções void inclusao(int c, char s[]); void consulta(int c); void alteracao(int c); void exclusao(int c); * * * main() { int op=0, c; char s[200]; while(op!=5){ cout<<"1-Inclusao\n"; cout<<"2-Consulta\n"; cout<<"3-Alteracao\n"; cout<<"4-Exclusao\n"; cout<<"5-Sair\n"; cin >> op;fflush(stdin); if(op==1){ cout<<"Entre com o codigo:"; cin>>c;fflush(stdin); cout<<"Entre com a descricao:"; gets(s); fflush(stdin); inclusao(c,s); } else if(op==2){ cout<<"Entre com o codigo para a colsulta:\n"; cin>>c; fflush(stdin); consulta(c); } else if(op==3){ cout<<"Entre com o codigo para a Alteracao:\n"; cin>>c; fflush(stdin); alteracao(c); } else if(op==4){ cout<<"Entre com o codigo para a exclusao:\n"; cin>>c; fflush(stdin); exclusao(c); } } } * * * // Função de Inclusão void inclusao(int c, char s[]) { aux = (struct LDE *) malloc(sizeof(struct LDE)); if(!prim){ prim=aux; prim->ant=NULL; } else{ ult->prox=aux; aux->ant=ult; } ult=aux; ult->c=c; strcpy(ult->s,s); ult->prox=NULL; cout<<"Inclusao realizada!\n"; } * * * // Função de Consulta void consulta(int c) { int achei = 0; aux=prim; while(aux && !achei){ if(aux->c==c){ achei=1; cout<<"Descricao:"<<aux->s<<"\n"; } else aux=aux->prox; } if(!achei) cout<<"Codigo inexistente!\n"; } * * * // Função de Alteração void alteracao(int c) { int achei = 0; aux=prim; while(aux && !achei){ if(aux->c==c){ achei=1; cout<<"Descricao atual:"<<aux->s<<"\n"; cout<<"Entre com a nova descricao:"; gets(aux->s); cout<<"Alteracao realizada!\n"; } else aux=aux->prox; } if(!achei) cout<<"Codigo inexistente!\n"; } * * * void exclusao(int c) { int achei = 0; aux=prim; while(aux && !achei){ if(aux->c==c){ if(aux==prim){ if(aux==ult) prim=ult=NULL; //CASO 1 else{ prim=prim->prox; //CASO 2 prim->ant=NULL; } } else if(aux==ult){ //CASO 3 ult=ult->ant; ult->prox=NULL; } else{//CASO 4 aux->ant->prox=aux->prox; aux->prox->ant=aux->ant; } achei=1; free(aux); } else aux=aux->prox; } if(!achei) cout<<"Codigo inexistente!\n"; else cout<<"Exclusao realizada!\n"; }
Compartilhar