Vesker

Pilha ED UFSC 2015/1

Aug 25th, 2015
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.88 KB | None | 0 0
  1. // Copyright [2015] <Salvatore Junior Amore>
  2.  
  3. template<typename T>
  4. class Pilha {
  5.  private:
  6.     int const MaxPilha = 100;
  7.     T *m_dados;
  8.     int ctrl = -1;
  9.     int tamanho;
  10.  
  11.  public:
  12.     Pilha() {
  13.     m_dados = new T[MaxPilha];
  14.     tamanho = MaxPilha;
  15.     }
  16.     Pilha<T>(int t) {
  17.     m_dados = new T[t];
  18.     tamanho = t;
  19.     }
  20.     void empilha(T dado) {
  21.     if (PilhaCheia()) {
  22.     throw 0;
  23.     }else {
  24.     ctrl++;
  25.     m_dados[ctrl] = dado;
  26.         }
  27.     }
  28.     T desempilha() {
  29.     if (PilhaVazia()) {
  30.     throw 1;
  31.     }else {
  32.     ctrl--;
  33.        }
  34.     }
  35.     T topo() {
  36.     return m_dados[ctrl];
  37.     }
  38.     int getPosTopo() {
  39.     if (PilhaVazia()) {
  40.     throw 1;
  41.     }else {
  42.     return ctrl;
  43.         }
  44.     }
  45.     void limparPilha() {
  46.     ctrl = -1;
  47.     }
  48.     bool PilhaVazia() {
  49.     return (ctrl == -1);
  50.     }
  51.     bool PilhaCheia(){
  52.     return (ctrl == tamanho - 1);
  53.     }
  54. };
Advertisement
Add Comment
Please, Sign In to add comment