Commit 5769c424 by Alan de Oliveira

comentando exercicio 3

parent 91127488
...@@ -34,14 +34,33 @@ class Pilha { ...@@ -34,14 +34,33 @@ class Pilha {
}; };
/**
* @brief Reescreva uma fila utilizando duas pilhas
* Descrição Abaixo
*
* @tparam T
*/
template <class T> template <class T>
class Fila { class Fila {
public: public:
/**
* @brief Para enfileirar, apenas utilizamos a função de empilhar
*
* @param elem
*/
void enfilera(T elem) { void enfilera(T elem) {
pilha->empilha(elem); pilha->empilha(elem);
} }
/**
* @brief Para desenfilerar,
* passo os elementos de uma pilha para outra, exeto o ultimo elemento
* guardo esse ultimo elemento para o retorno.
* Volto todos os elementos da pilha auxiliar para a pilha principal.
* @return T
*/
T desenfilera() { T desenfilera() {
if (pilha->topo() == -1) if (pilha->topo() == -1)
...@@ -49,12 +68,11 @@ class Fila { ...@@ -49,12 +68,11 @@ class Fila {
auto paux = new Pilha<T>(); auto paux = new Pilha<T>();
T elemento; T elemento;
while (pilha->topo() != -1) { while (pilha->topo() != -1) {
cout << " " << pilha->topo();
elemento = pilha->desempilha(); elemento = pilha->desempilha();
if (pilha->topo() != -1) if (pilha->topo() != -1)
paux->empilha(elemento); paux->empilha(elemento);
} }
cout << endl;
while (paux-> topo() != -1) { while (paux-> topo() != -1) {
pilha->empilha(paux->desempilha()); pilha->empilha(paux->desempilha());
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment