Commit 6a0fe149 by Alan de Oliveira

Finalização exercicio 6

parent 82dd2492
#include <iostream>
template <class T>
class PilhaMin {
class Pilha {
public:
void empilha(T elemento) {
......@@ -24,21 +24,42 @@ class PilhaMin {
else
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++) {
if (elementos[i] < *(minimo))
minimo = &elementos[i];
}
};
template <class T>
class PilhaMin {
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:
static const int MAX = 900;
int N = 0;
T elementos[MAX];
Pilha<T> pilha;
Pilha<T> pilhamin;
};
......@@ -58,7 +79,6 @@ void preencherPilha(PilhaMin<char> &pilha) {
pilha.empilha('l');
pilha.empilha('m');
pilha.empilha('a');
pilha.empilha('1');
pilha.empilha('n');
pilha.empilha('o');
pilha.empilha('p');
......@@ -70,6 +90,7 @@ void preencherPilha(PilhaMin<char> &pilha) {
pilha.empilha('v');
pilha.empilha('w');
pilha.empilha('x');
pilha.empilha('1');
pilha.empilha('y');
pilha.empilha('z');
}
......@@ -83,6 +104,130 @@ int main(int argc, char* argv[]) {
preencherPilha(pilha);
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;
}
\ 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