Para inseri-lo em seu programa C, basta fazer a cópia do arquivo e salvar com extensão .h (utils.h). Depois basta incluir ele no código fonte que deseja utilizar com o comando #include. Exemplo:
#include <stdio.h>
int main (void) {
Lista *l;
l = lst_cria ();
l = lst_insere (l, 2000);
lst_libera (l);
return 0;
}
Curtam meu blog pô, e compartilha também :D!! Até mais!
typedef struct lista {
int value;
struct lista *prox;
} Lista;
/* função de criação: retorna uma lista vazia */
Lista *lst_cria (void) {
return NULL;
}
/* inserção no início: retorna lista atualizada */
Lista *lst_insere (Lista *l, int i) {
Lista *novo = (Lista *) malloc(sizeof(Lista));
novo->value = i;
novo->prox = l;
return novo;
}
/* função imprime: imprime valores dos elementos */
void lst_imprime (Lista *l) {
Lista *p; /* variável auxiliar para percorrer a lista */
for (p = l; p != NULL; p = p->prox) {
printf ("Value = %d\n", p->value);
}
}
/* função vazia: retorna 1 se vazia ou 0 se não vazia */
int lst_vazia (Lista *l) {
if (l == NULL)
return 1;
else
return 0;
}
/* função busca: busca o elemento na lista */
Lista * lst_busca (Lista * l , int v) {
Lista * p;
for (p = l; p != NULL; p = p->prox) {
if (p->value == v)
return p;
}
return NULL; /* não achou o elemento */
}
/* função retirra: retira o elemento da lista */
Lista *lst_retira (Lista *l, int v) {
Lista *ant = NULL; /* ponteiro para o elemento anterior */
Lista *p = l; /* ponteiro para percorrer a lista */
/* procura o valor na lista, guardando o anterior */
while (p != NULL && p->value != v) {
ant = p;
p = p->prox;
}
/* verifica se achou o elemento */
if (p == NULL)
return l; /* não achou: retorna a lista original */
/* retira o elemento */
if (ant == NULL)
/* retira o elemento de inicio*/
l = p->prox;
else
/* retira o elemento do meio da lista */
ant->prox = p->prox;
free (p);
return l;
}
/* função libera: libera o espaço em memória ocupado pela lista */
void lst_libera (Lista *l) {
Lista * p = l;
while (p != NULL) {
Lista * t = p->prox; /* guarda referência para o próximo elemento */
free (p); /* libera a memória apontada por p */
p = t; /* faz p apontar para o próximo */
}
}
Nenhum comentário:
Postar um comentário