Fortuna dejó class3-2- estructura de cola basado método objeto 3 estructura meramente pila
1. Tema
Como estructura de pila única cola de estructura?
2. Análisis
Después de la pila en sí se hace avanzar fuera de la estructura, con el fin de lograr el efecto que necesita dos pila FIFO cola, la pila de un primer intento y luego el pop a cabo a otro dentro de la pila.
(1) Diseño de dos pilas, un nombre para el empuje, uno de pop. La pila de comando de entrada de datos, pop los datos de la pila como un resultado de salida de la cola de salida.
(2) es necesario que la salida, necesidad de primero empujar el contenido de la pila desembocaba en el pop pila, POP la pila y salida entonces.
Consejos : Pour la necesidad empuje pila pila pop para cumplir con las siguientes condiciones:
①push por el tiempo necesario para terminar abajo
hay algo que no se puede caer dentro ②pop
código 3. núcleo
El empuje y hacer estallar la pila no es el espacio vacío se puede dividir en tres casos:
①push, pop Todos vacío volver directamente;
salida directa no se invierte ②pop no vacío;
③push no está vacío, pop y después se vertió en la salida de vacío;
void pop_num(stack<int> &pushstack,stack<int> &popstack)
{
if(popstack.empty() && pushstack.empty())
{
cout<<"空"<<endl;
return;
}
if(popstack.empty())
{
while(!pushstack.empty())
{
popstack.push(pushstack.top());
pushstack.pop();
}
}
cout<< popstack.top() <<endl;
popstack.pop();
}
4. El código completo
#include<stack>
#include<iostream>
using namespace std;
void pop_num(stack<int> &pushstack,stack<int> &popstack)
{
if(popstack.empty() && pushstack.empty())
{
cout<<"空"<<endl;
return;
}
if(popstack.empty())
{
while(!pushstack.empty())
{
popstack.push(pushstack.top());
pushstack.pop();
}
}
cout<< popstack.top() <<endl;
popstack.pop();
}
int main()
{
stack<int> pushstack;
stack<int> popstack;
pushstack.push(1);
pushstack.push(2);
pushstack.push(3);
pop_num(pushstack,popstack);
pop_num(pushstack,popstack);
pushstack.push(4);
pop_num(pushstack,popstack);
pushstack.push(5);
pop_num(pushstack,popstack);
pop_num(pushstack,popstack);
pop_num(pushstack,popstack);
system("pause");
return 0;
}
5. La salida
Verter de entrada, independientemente de qué posición 1,2,3,4,5 pila pop, la salida debe ser del orden de 1,2,3,4,5