[アルゴリズム] コミュニティスタック

あなたが見ることができるスタックの操作について ここに

スタックは、前後を形成するためのリンクのリストがあるので、私たちは公共向けることはできません 2 スタック. スタックスタックS2 S1で仮定する必要性コミュニティ, 使用しております 1 STEMPは、S2の中間値を格納するためにスタックし、そしてちょうどS1 STEMPターンオンの値を入れて.
コミュニティの場合 2 Stackは歌いました 1 新しいスタックは、すべてを転送する必要があります 2 メインスタックの必要性のコミュニティに切り替える前に、ミドルウェア・スタックをスタック. スタックプラス多くが同じことをやりました.
プラス 2 スタック

#include <iostream>
#include <stack>

using namespace std;

int main(){
	stack <int> S1;
	stack <int> S2;
	stack <int> Stemp;
	
	// create 2 Stack
	for (int i = 0; i < 5; i++)
		S1.push(i);		// S1 : 0 1 2 3 4 
	for (int i = 5; i < 10; i++)
		S2.push(i);		// S2 : 5 6 7 8 9
	
	// move S2 to Stemp;
	while (!S2.empty()){
		int x = S2.top();
		S2.pop();
		Stemp.push(x);		// Stemp : 9 8 7 6 5
	}
	
	// move Stemp to S1
	while(!Stemp.empty()){
		int x = Stemp.top();
		Stemp.pop();
		S1.push(x);		// S1 : 0 1 2 3 4 5 6 7 8 9
	}
	
	// show S1
	
	while (!S1.empty()){
		int x = S1.top();
		S1.pop();
		cout << x << " ";
	}
	
	return 0;
}