Lista encadeada

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (292 palavras )
  • Download(s) : 0
  • Publicado : 27 de outubro de 2011
Ler documento completo
Amostra do texto
#include
typedef struct lista {
char info;
struct lista *prox;
} Lista;
Lista* inicializa (void);
Lista* insere (Lista* l, char i[]);
void imprime (Lista* l);
Lista* busca(Lista* l, char v[]);
Lista* retira (Lista* l, char v[]);

int main (void){
Lista* l; /* declara uma lista não inicializada */
l = inicializa(); /* inicializa lista como vazia */
l= insere(l, "Ricardo Laskoski"); /* insere na lista o elemento 23 */
l = insere(l, "Jagner Rafael"); /* insere na lista o elemento 45 */
l = insere(l, "Manfred Heil Junior"); /* insere nalista o elemento 45 */
l = insere(l, "Evandro Souza Lopes"); /* insere na lista o elemento 45 */

//função impressão
imprime(l);
printf("\n");

//função de busca
if(busca(l, "Ricardo Laskoski"))
printf("\nAchou elemento\n");
else
printf("\nNao achou elemento\n");
printf("\n");

//função de retirada
printf("\n");imprime(l);
//l = retira(l, 90);
imprime(l);
printf("\n");

getch();
return 0;
}

Lista* inicializa (void){
return NULL;
}

Lista* insere (Lista* l, chari[]){
Lista* novo = (Lista*) malloc(sizeof(Lista));
novo->info = i;
novo->prox = l;
return novo;
}

void imprime (Lista* l){
Lista* p;
for (p = l; p !=NULL; p = p->prox)
printf("info = %s\n", 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; /* não achou o elemento */
}

Lista* retira (Lista* l, char v[]){
Lista* ant = NULL; /* ponteiro para elemento anterior */
Lista* p = l; /*ponteiro para percorrer a lista*/

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