Buscar

Lista Simplesmente Encadeada – LSE

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Lista Simplesmente Encadeada – LSE
Implementação
*
#include <stdlib.h>
#include <string.h>
#include <iomanip.h>
// Tipo de cada elemento da LSE
struct LSE{
	int c;
	char s[200];
	struct LSE *prox;
}*prim, *ult, *aux;
// Assinaturas das funções
void inclusao(int c, char s[100]);
void consulta(int c);
void alteracao(int c);
void exclusao(int c);
*
main()
{
	int op=0, c;
	char s[200];
	prim=ult=NULL;
	while(op!=5){
		c=0;
		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 LSE *) malloc(sizeof(struct LSE));
	if(!prim) // É o mesmo que “if(prim==NULL)”
		prim=aux;
	else
		ult->prox=aux;
	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){// É o mesmo que “while(aux!=NULL && achei==0)”
		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;
	struct LSE *aux2;
	while(aux && !achei){
		if(aux->c==c){
			if(aux==prim){
				if(aux==ult)
					prim=ult=NULL; //CASO 1
				else								prim=prim->prox; //CASO 2
			}
			else if(aux==ult){ //CASO 3
				ult=aux2;
				ult->prox=NULL;
			}
			else
				aux2->prox = aux->prox; //CASO 4
			achei=1;
			free(aux);
			cout<<"Exclusao realizada!\n";
		}
		else {
			aux2=aux;
			aux=aux->prox;
		}
	}
	if(!achei)
		cout<<"Codigo inexistente!\n";
}

Teste o Premium para desbloquear

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

Continue navegando

Outros materiais