Buscar

LDE - Lista Duplamente Encadeada

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";
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando