Commit 870cf896 by Alan de Oliveira

Corrigindo Exercicio5

parent 46840fc0
...@@ -84,42 +84,45 @@ class Pilha { ...@@ -84,42 +84,45 @@ class Pilha {
template <class T> Fila<T> inverterFila(Fila<T> fila) { template <class T> Fila<T> inverterFila(Fila<T> fila) {
Fila<T> filaAux; Fila<T> filaAux, filaInvertida;
while (fila.frente() != -1) { T ultimo;
filaAux.enfilera(fila.desenfilera()); bool fim = false;
while (!fim) {
while (fila.frente() != -1) {
ultimo = fila.frente();
filaAux.enfilera(fila.desenfilera());
}
filaInvertida.enfilera(ultimo);
while (filaAux.frente() != -1 && filaAux.frente() != ultimo) {
fila.enfilera(filaAux.desenfilera());
}
filaAux.desenfilera();
if (fila.frente() == -1)
fim = true;
} }
return filaAux; return filaInvertida;
} }
template <class T> Fila<T> inverterFilaComPilha(Fila<T> fila) { template <class T> Pilha<T> inverterFilaComPilha(Fila<T> fila) {
Pilha<T> pilha; Pilha<T> pilha;
while (fila.frente() != -1) { while (fila.frente() != -1) {
pilha.empilha(fila.desenfilera()); pilha.empilha(fila.desenfilera());
} }
printarPilha(pilha, "Fila invertida com Pilha");
//printarPilha(pilha, "Fila invertida com Pilha");
return fila;
}
template <class T> Pilha<T> inverterPilhaComDuasPilhas(Pilha<T> pilha) { return pilha;
}
Pilha<T> pilhaAux, pilhaAux2;
while (pilha.topo() != -1) {
pilhaAux.empilha(pilha.desempilha());
}
while (pilhaAux.topo() != -1) {
pilhaAux2.empilha(pilhaAux.desempilha());
}
while (pilhaAux2.topo() != -1) {
pilhaAux.empilha(pilhaAux2.desempilha());
}
return pilhaAux;
}
void preencherFila(Fila<char> &fila) { void preencherFila(Fila<char> &fila) {
...@@ -182,16 +185,8 @@ int main(int argc, char* argv[]) { ...@@ -182,16 +185,8 @@ int main(int argc, char* argv[]) {
printarFila(fila, "Fila invertida com outra fila ???"); printarFila(fila, "Fila invertida com outra fila ???");
preencherFila(fila); preencherFila(fila);
inverterFilaComPilha(fila); Pilha<char> pilha = inverterFilaComPilha(fila);
//printarFila(fila, "Fila invertida com Pilha"); printarPilha(pilha, "Fila invertida com Pilha");
/*
reencherFila(fila);
pilha = inverterPilhaComFila(pilha);
printarFila(fila, "Fila normal");
reencherFila(fila);
pilha = inverterPilhaComDuasPilhas(pilha);
printarFila(fila, "Fila normal");*/
......
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