/*! * \file pilha.h * Cabecalho para arquivo fonte pilha.c. * Este arquivo contem os prototipos das * funcoes do modulo da pilha e toda parte * estatica dos dados. * * \brief Define TAD statico da pilha. * \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 */ #ifndef __PILHA_H__ #define __PILHA_H__ 1 #include "mycommdef.h" /* definicoes comuns a outros modulos. */ #define TAM_ELEMENTO 32 /*!< Define numero maximo de caracteres que cada elemento da pilha pode conter incluido NULL. */ typedef char TipoItem; /*!< Define TipoItem como char, e o tipo de cada elemento da pilha. */ /*! \brief Estrutura de cada elemento da pilha. */ struct TipoElementoPilha { TipoItem Elemento[TAM_ELEMENTO]; /*!< Vetor do TipoItem (char's) tamanho maximo TAM_ELEMENTO \sa TAM_ELEMENTO */ struct TipoElementoPilha *pProx; /*!< Ponteiro para o proximo elemento da pilha */ }; /*! \brief Estrutura com dados da pilha. */ struct TipoPilha { struct TipoElementoPilha *pTopo; /*!< Ponteiro para o topo da pilha. */ UINT tamanho; /*!< Numero de elementos na pilha. */ }; /* prototipos para as funcoes */ bool InicPilha(struct TipoPilha*); /* Inicializa a pilha. */ bool Push(TipoItem*, struct TipoPilha*); /* Armazena um item na pilha, politica LIFO. */ TipoItem *Pop(struct TipoPilha*); /* Remove elemento do topo da pilha, politica LIFO. */ bool VaziaPilha(struct TipoPilha*); /* Verifica se a pilha esta vazia. */ UINT TamanhoPilha(struct TipoPilha*); /* Obtem numero de elementos da pilha. */ void ImprimePilha(struct TipoPilha*); /* Imprime todos os elementos da pilha. */ #endif /* __PILHA_H__ */