/*! * \file lista.h * Cabeçalho para arquivo fonte lista.c. * Este arquivo contém os prototipos das * funções do módulo da lista e toda parte * estática dos dados. * * \brief Define TAD statico da lista. * \version 0.0.1 * \date 04/27/2012 10:52:02 AM * \author Alessandro Elias, ae11@inf.ufpr.br * \author Welton Martins Pereira, wpm11@inf.ufpr.br */ /* garanta a nao inclusao recursiva */ #ifndef __LISTA_H__ #define __LISTA_H__ 1 #include "mycommdef.h" /* inclusao de definoces comuns a outros modulos */ #include "pilha.h" /*! Define o número máximo de caracteres que o campo nome da lista pode conter. */ #define TAM_NOME 64 /*! Define o a quantidade máxima de disciplinas.*/ #define MAX_DISCIPLINAS 5 /*! \brief Estrutura com elementos da lista. */ struct TipoItem { char nome[TAM_NOME]; /*!< Vetor de char's com tamanho máximo TAM_NOME \sa TAM_NOME */ int disciplinas[MAX_DISCIPLINAS]; /*!< Vetor de inteiros com as disciplinas, tamanho máximo MAX_DISCIPLINAS \sa MAX_DISCIPLINAS */ TipoItem brinde[TAM_ELEMENTO]; /*!< Nome do brinde obtido da pilha. */ }; /*! \brief Estrutura de cada elemento da lista. */ struct TipoElementoLista { struct TipoItem Elemento; /*!< Estrurura do TipoItem. */ struct TipoElementoLista *pProx; /*!< Ponteiro para o próximo elemento. */ struct TipoElementoLista *pAnt; /*!< Ponteiro para o elemento anterior. */ }; /*! \brief Estrutura com dados da lista. */ struct TipoLista { struct TipoElementoLista *pHeadNodo; /*!< Ponteiro para a raiz da lista. */ UINT tamanho; /*!< Número de elementos contido nesta lista. */ }; /* prototipos das funcoes */ bool InicLista(struct TipoLista*); bool VaziaLista(struct TipoLista*); UINT TamanhoLista(struct TipoLista*); bool InsereLista(struct TipoItem*, struct TipoLista*); void ImprimeLista(struct TipoLista*); struct TipoItem RemoveLista(struct TipoElementoLista*, struct TipoLista*); #endif /* __LISTA_H__ */