Programa lista ligada- estrutura de dados

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (332 palavras )
  • Download(s) : 0
  • Publicado : 18 de maio de 2011
Ler documento completo
Amostra do texto
#include
#include

struct lista {
int info;
struct lista* prox;
};

typedef struct lista Lista;

/* função de inicialização: retorna a lista vazia */
Lista* inicializa (void){
return NULL;
}

/* inserção no inicio: retorna a lista atualizada */
Lista* insere (Lista* l, int i )
{
Lista* novo= (Lista*) malloc (sizeof (Lista));
novo->info=i ;novo->prox=l;
return novo;
}

/* função imprime: imprime os valores dos elementos */
void imprime(Lista* l)
{
Lista* p; /* variavel auxiliar pra percorrer alista */
for(p = l; p != NULL; p = p->prox)
printf("info= %d\n", p-> info);
}

/* função vazia: retorna 1 se vazia ou 0 se não vazia */
int vazia (Lista* l )
{
if (l==NULL)return 1;
else
return 0;
}

/* função busca: busca um elemento na lista */
Lista* busca (Lista* l,int v)
{
Lista* p ;
for (p=l; p !=NULL; p=p->prox)if(p->info==v)
return p;
return NULL; /* não achou o elemento */
}

/* função retira: retira elemento da lista */
Lista* retira(Lista* l, int v ){
Lista* ant= NULL; /*ponteiro para elemento anterior */
Lista* p = l; /* ponteiro para percorrer a lista */

/* procura elemento na lista, guardando anterios */while (p != NULL && p-> info != v){
ant=p;
p= p -> prox;
}

/* verifica se achou elemento */
if (p == NULL)
return l; /* NÃO ACHOU: retornalista original */
/* retira elemento */
if (ant== NULL)
{
/*retira o elemento do inicio */
l=p -> prox;}
else{
/* retira elemento do meio dalista */
ant-> prox = p->prox;
}

free (p);
return l;
}

void libera (Lista* l)
{
Lista* p =l;
while(p !=NULL){
Lista* t = p-> prox;...
tracking img