Advertisement
Vesker

Pilha Encadeada GG

Apr 26th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1. #include "ListaEnc.hpp"
  2. // "Copyright [2016] <Salvatore Amore>"
  3. template<typename T>
  4. class PilhaEnc : private ListaEnc<T> {  // herda a Lista Encadeada
  5.  public:
  6.     PilhaEnc() : ListaEnc<T>() {}  // construtor herdado da Lista Encadeada
  7.     ~PilhaEnc() {}
  8.     void empilha(const T& dado) {  // coloca o dado na ultima posição da estrutura
  9.         ListaEnc<T>::adicionaNoInicio(dado);  // heranca da Lista Encadeada
  10.     }
  11.     T desempilha() {  // retira o ultimo elemento a entrar (LIFO)
  12.         return ListaEnc<T>::retiraDoInicio();
  13.         // heranca da Lista Encadeada, mesma funcao
  14.     }
  15.     T topo() {  // mostra o elemento da ultima posição da estrutura
  16.         T desempilhado = desempilha();
  17.         // variavel template que armazena o dado do ultimo elemento
  18.         empilha(desempilhado);
  19.         // reempilha a variavel desempilhada no lugar onde se encontrava inicialmente
  20.         return desempilhado;
  21.         // retorna a variavel desempilhada
  22.     }
  23.     void limparPilha() {  // destroi todos os elementos da estrutura
  24.         ListaEnc<T>::destroiLista();  // heranca de Destroi Lista da Lista Encadeada
  25.     }
  26.     bool PilhaVazia() {  // verifica se a pilha se encontra vazia
  27.         return ListaEnc<T>::listaVazia();  // herdado da Lista Encadeada
  28.     }
  29. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement