Commit 6a0fe149 by Alan de Oliveira

Finalização exercicio 6

parent 82dd2492
#include <iostream> #include <iostream>
template <class T> template <class T>
class PilhaMin { class Pilha {
public: public:
void empilha(T elemento) { void empilha(T elemento) {
...@@ -24,21 +24,42 @@ class PilhaMin { ...@@ -24,21 +24,42 @@ class PilhaMin {
else else
return -1; return -1;
} }
private:
static const int MAX = 900;
int N = 0;
T elementos[MAX];
T obterMinimo() { };
T *minimo = &elementos[0];
for (int i = 1; i < N; i++) { template <class T>
if (elementos[i] < *(minimo)) class PilhaMin {
minimo = &elementos[i];
}
return *(minimo); public:
void empilha(T elemento) {
T min = elemento;
if (pilhamin.topo() != -1 && min > pilhamin.topo())
min = pilhamin.topo();
pilha.empilha(elemento);
pilhamin.empilha(min);
}
void desempilha() {
pilha.desempilha();
pilhamin.desempilha();
}
T topo() {
return pilha.topo();
} }
T obterMinimo() {
return pilhamin.topo();
}
private: private:
static const int MAX = 900;
int N = 0; Pilha<T> pilha;
T elementos[MAX]; Pilha<T> pilhamin;
}; };
...@@ -58,7 +79,6 @@ void preencherPilha(PilhaMin<char> &pilha) { ...@@ -58,7 +79,6 @@ void preencherPilha(PilhaMin<char> &pilha) {
pilha.empilha('l'); pilha.empilha('l');
pilha.empilha('m'); pilha.empilha('m');
pilha.empilha('a'); pilha.empilha('a');
pilha.empilha('1');
pilha.empilha('n'); pilha.empilha('n');
pilha.empilha('o'); pilha.empilha('o');
pilha.empilha('p'); pilha.empilha('p');
...@@ -70,6 +90,7 @@ void preencherPilha(PilhaMin<char> &pilha) { ...@@ -70,6 +90,7 @@ void preencherPilha(PilhaMin<char> &pilha) {
pilha.empilha('v'); pilha.empilha('v');
pilha.empilha('w'); pilha.empilha('w');
pilha.empilha('x'); pilha.empilha('x');
pilha.empilha('1');
pilha.empilha('y'); pilha.empilha('y');
pilha.empilha('z'); pilha.empilha('z');
} }
...@@ -83,6 +104,130 @@ int main(int argc, char* argv[]) { ...@@ -83,6 +104,130 @@ int main(int argc, char* argv[]) {
preencherPilha(pilha); preencherPilha(pilha);
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl; std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
std::cout << "Desempilhando o : "<< pilha.topo() << std::endl;
pilha.desempilha();
std::cout << "Mínimo: " << pilha.obterMinimo() << std::endl;
return 0; return 0;
} }
\ No newline at end of file
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