TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Lista Encadeada Dupla

Ensaios: Lista Encadeada Dupla. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  5/10/2013  •  292 Palavras (2 Páginas)  •  545 Visualizações

Página 1 de 2

LISTA ENCADEADA DUPLA

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

struct no {

int mat;

struct no *prox;

struct no *ant; };

typedef struct no lista;

lista *inicio=NULL;

lista *atual=NULL;

void inicializa(){

inicio =(lista*) malloc (sizeof (lista));

if (!inicio){

printf("\nNao existe espaco na memoria!");

exit(1); }

inicio->ant = NULL;

inicio->prox = NULL;

atual = inicio;

}

void insere()

{

lista *novo=NULL;

novo = (lista*) malloc (sizeof (lista));

if (!novo){

printf("\nNao existe espaco na memoria!");

exit(1);

}

printf("\nDigite a matricula: ");

scanf("%d",&novo->mat);

fflush(stdin);

novo->ant = atual;

novo->prox = NULL;

atual->prox = novo;

atual = novo;

}

void imprime(){

if (inicio->prox==NULL)

printf("\nLista vazia!\n");

else{

atual=inicio;

do{

atual=atual->prox;

printf("\n\nMatricula: %d",atual->mat);

} while (atual->prox!=NULL); }}

void busca(){

int matbusca,encontrou=0;

printf("\n\nDigite a matricula para busca: ");

scanf("%d",&matbusca);

if (inicio->prox==NULL)

printf("\nLista vazia! Busca nao pode ser processada!\n");

else{

for (atual=inicio->prox; atual!=NULL; atual=atual->prox){

if (matbusca==atual->mat){

printf("\n\nMatricula: %d",atual->mat);

encontrou=1;

}

if (atual->prox==NULL && encontrou==0){

printf("\nRegistro nao encontrado!\n");

break;

}

if (atual->prox==NULL)

break;

} }}

void exclui(){

int matbusca,encontrou=0;

printf("\n\nDigite a matricula para exclusao: ");

scanf("%d",&matbusca);

if (inicio->prox==NULL)

printf("\nLista vazia! Busca para exclusao nao pode ser processada!\n");

else{

for (atual=inicio->prox; atual!=NULL; atual=atual->prox){

if (matbusca==atual->mat){

encontrou=1;

if (atual->prox==NULL){

atual->ant->prox = NULL;

free(atual);

atual

...

Baixar como (para membros premium)  txt (2.8 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com