Lista encadeada c
#include
#include
#include
struct Cad_livro
{
char titulo[30]; char autor[20]; int pg; int ano; char emp; // S- sim N- nao struct Cad_livro* prox;
};
typedef struct Cad_livro Lista;
/* funcao de inicialização: retorna uma lista vazia */
Lista *inicializa (void)
{
return (NULL);
}
/*insercao no inicio: retorna a lista atualizada */
Lista *insere (Lista *l, char titulom[30], char autorm[20], int pgm, int anom, char empm)
{
Lista* novo= (Lista*) malloc (sizeof(Lista)); strcpy(novo->titulo,titulom); strcpy(novo->autor,autorm); novo->ano=anom; novo->pg=pgm; novo->emp='N'; novo->prox=l; return(novo);
}
/*Função Disponivel */ void listaDisponiveis(Lista* l)
{
Lista *p; for (p = l; p != NULL; p = p->prox) { if(p->emp == 'N' || p->emp == 'n') { printf("Titulo do livro: %s\n", p->titulo); printf("Autor: %s\n", p->autor); printf("Ano de edicao: %d\n", p->ano); printf("Numero de paginas: %d\n", p->pg); printf("Emprestado: %c\n\n", p->emp); } }
}
//*Função Emprestar */ void listaEmprestados (Lista* l)
{
Lista *p; for (p = l; p != NULL; p = p->prox) { if(p->emp == 'S' || p->emp == 's') { printf("Titulo do livro: %s\n", p->titulo); printf("Autor: %s\n", p->autor); printf("Ano de edicao: %d\n", p->ano); printf("Numero de paginas: %d\n", p->pg); printf("Emprestado: %c\n\n", p->emp); } }
}
/*Função Busca */
Lista *buscaTitulo (Lista *l, char titulobusc[30])
{
Lista *p; for(p=l; p!= NULL; p=p->prox) if (strcmp(p->titulo, titulobusc)==0) return (p); return (NULL);
}
Lista *buscaAutor (Lista *l, char autorbusc[30])
{
Lista *p; for(p=l; p != NULL; p=p->prox) if (strcmp(p->autor, autorbusc)==0) return (p); return (NULL);
}