Fortuna dejó class3-2- estructura de cola basado método objeto 3 estructura meramente pila

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.
Aquí Insertar imagen Descripción
(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
Aquí Insertar imagen Descripción

Publicado 51 artículos originales · ganado elogios 1 · vistas 1389

Supongo que te gusta

Origin blog.csdn.net/shi_xiao_xuan/article/details/103626704
Recomendado
Clasificación