フォーチュンの基礎は、スタック構造を達成するためにのみ3 class3-1-タイトルキュー構造を残しました

フォーチュンはclass3-対象方法に基づくキュー構造のみ3-1スタック構造を実現し、左

1.トピック

どのようにのみキュー構造スタック構造を実現するには?

2.分析

2つのスタックキュー:
(1)データというキュー、すべてのデータがこのキュー内に押し込まれます。
必要なスタック操作は、キューの最後の要素とキューを除くすべての要素が助けキューに押し込まれる(2)。
この場合、最後のデータ要素の最後の要素が来ているがある(3)、ポップオフ
(4)と、ヘルプ交換データ参照
==操作サイズまでステップ3を続けて続行するスタック全体(5)0
例:1,2,3,4,5スタックは、外側1,2,3,4ヘルプへの5に加えて、この時点で、最後の5の交換データおよびヘルプを解放したとき、そこには現在、データをキューに入れられますデータ[ヘルプ1,2,3、4に、ヘルプが空である、1,2,3,4を持って...結局キュー1,2,3,4,5中に放出され、5,4,3リリースオーダーを、 2,1。
ヒント:操作キュー#include<queue>
1)s.back()の最後の要素を返します
)((2)s.emptyをキューが空の場合はtrueを返します
(3)s.front()、すなわち、最初のリターンを最初の要素を返します。キューに要素
(4)s.pop()は最初の要素削除
(5)s.push()要素の最後に追加した
(6)s.size()キュー内の要素の数を返すを

3.コアコード

スタックの(1)のうち
、①は、空気は、直接空返すかどうかを判断する
サイズが1より大きい場合(ヘルプが最前面のデータ要素に圧入)ヘルプに、②キュー内のデータ要素を、及びデータのいずれかによって解放さ要素;
③為替のヘルプ、データ参照。

void pop_num(queue<int> &data,queue<int> &help)
{
	if(data.size() == 0)
	{
		cout<<"已空"<<endl;
		return;
	}
		
	while(data.size() > 1)
	{
		help.push(data.front());
		data.pop();
	}
	cout<<data.back()<<" ";
	data.pop();
	swap(data,help);
}

(2)交換

void swap(queue<int> &data,queue<int> &help)
{
	queue<int> temp;
	temp = data;
	data = help;
	help = temp;
}

4.完全なコード

#include<queue>
#include<iostream>
using namespace std;

void swap(queue<int> &data,queue<int> &help)
{
	queue<int> temp;
	temp = data;
	data = help;
	help = temp;
}
void pop_num(queue<int> &data,queue<int> &help)
{
	if(data.size() == 0)
	{
		cout<<"已空"<<endl;
		return;
	}
		
	while(data.size() > 1)
	{
		help.push(data.front());
		data.pop();
	}
	cout<<data.back()<<" ";
	data.pop();
	swap(data,help);
}

int main()
{
	queue<int> data;
	queue<int> help;
	data.push(10);
	data.push(20);
	data.push(30);
	pop_num(data,help);
	data.push(40);
	data.push(50);
	pop_num(data,help);
	pop_num(data,help);
	pop_num(data,help);
	pop_num(data,help);
	pop_num(data,help);


	system("pause");
	return 0;
}


結果出力

この質問は、40、50に押し込まれ、放出され、10、20に圧入した後、5バックを解放しています。だから、リリースの順序は30,50,40,20,10は、空であります
ここに画像を挿入説明

公開された51元の記事 ウォンの賞賛1 ビュー1390

おすすめ

転載: blog.csdn.net/shi_xiao_xuan/article/details/103581379