joaobahia
(usa Outra)
Enviado em 23/01/2016 - 19:13h
#include<stdio.h>
#include<stdlib.h>
struct lista {
char info;
struct lista* prox;
struct lista* ant;
};
typedef struct lista Lista;
Lista* inicializa (void){
return NULL;
}
Lista* insere (Lista* l, char v){
Lista* novo = (Lista*) malloc(sizeof(Lista));
novo->info = v;
novo->prox = l;
novo->ant = NULL;
return novo;
}
void imprime (Lista* l){
Lista* p;
for (p = l; p != NULL; p = p->prox){
printf("%c", p->info);
}
}
Lista* busca (Lista* l, char v)
{
Lista* p;
for (p=l; p!=NULL; p=p->prox)
if(p->info == v)
return p;
return NULL;
}
Lista* retira (Lista* l, char v)
{
Lista* p = busca(l,v);
if (p == NULL)
return l;
if (l == p)
l = p-> prox;
else
p->ant->prox = p->prox;
if (p->prox != NULL)
p->prox->ant = p->ant;
free(p);
return l;
}
int main (void)
{
Lista* l;
//Lista* a;
printf("tres nomes: \n");
l = inicializa();
l = insere(l, 'A');
l = insere(l, 'S');
l = insere(l, 'O');
l = insere(l, 'R');
l = insere(l, 'D');
l = insere(l, 'E');
l = insere(l, 'P');
l = insere(l, ' ');
l = insere(l, 'A');
l = insere(l, 'H');
l = insere(l, 'N');
l = insere(l, 'O');
l = insere(l, 'R');
l = insere(l, 'O');
l = insere(l, 'N');
l = insere(l, ' ');
l = insere(l, 'O');
l = insere(l, 'D');
l = insere(l, 'L');
l = insere(l, 'E');
l = insere(l, 'I');
l = insere(l, 'C');
l = insere(l, 'N');
l = insere(l, 'A');
l = insere(l, 'R');
l = insere(l, 'F');
imprime(l);
busca (l, 'N');
busca (l, 'O');
busca (l, 'R');
busca (l, 'O');
busca (l, 'N');
busca (l, 'H');
busca (l, 'A');
printf("\n\ndois nomes : \n");
imprime(l);
return 0;
}