真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

利用兩個棧實現(xiàn)隊列

方法一:

在金安等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設計制作按需定制網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,成都品牌網(wǎng)站建設,成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站制作,金安網(wǎng)站建設費用合理。

入隊時,將元素壓入s1。

出隊時,將s1的元素逐個“倒入”(彈出并壓入)s2,將s2的頂元素彈出作為出隊元素,之后再將s2剩下的元素逐個“倒回”s1。

方法二:

入隊時,先判斷s1是否為空,如不為空,說明所有元素都在s1,此時將入隊元素直接壓入s1;如為空,要將s2的元素逐個“倒回”s1,再壓入入隊元素。

出隊時,先判斷s2是否為空,如不為空,直接彈出s2的頂元素并出隊;如為空,將s1的元素逐個“倒入”s2,把最后一個元素彈出并出隊。

最優(yōu)解:

入隊時,將元素壓入s1。

出隊時,判斷s2是否為空,如不為空,則直接彈出頂元素;如為空,則將s1的元素逐個“倒入”s2,把最后一個元素彈出并出隊。

注意:考慮沒有元素可供出隊時的處理(2個棧都為空的時候,出隊操作一定會引起異常)

代碼實現(xiàn)

//test1.h
#include
#include
using namespace std;
template
class queueWithTwoStack
{
public:
	queueWithTwoStack();
	~queueWithTwoStack();
	void addTail(const T& data);
	T deleteHead();
private:
	stack s1;
	stack s2;
};

//test1.cpp
#include "test1.h"
using namespace std;
template
queueWithTwoStack::queueWithTwoStack()
{}
template
queueWithTwoStack::~queueWithTwoStack()
{}
//加只加在S1中
template
void queueWithTwoStack::addTail(const T& data)
{
	s1.push(data);
}
//刪只刪S2中的
template
T queueWithTwoStack::deleteHead()
{
	if((s2.empty())&&(s1.empty()))
	{
		printf("is empty!\n");
		return -1;
	}
	//s2為空,把S1全倒在S2中后刪
	if(s2.empty())
	{
		while(!s1.empty())
		{
			T top=s1.top();
			s1.pop();
			s2.push(top);
		}
	}
	//s2不為空直接刪
	T head=s2.top();
	s2.pop();
	return head;	
}
void test1()
{
	queueWithTwoStack qw;
	qw.addTail(1);
	qw.addTail(2);
	qw.addTail(3);
	cout< qw;
	qw.addTail(1);
	qw.addTail(2);
	qw.addTail(3);
	cout<

參考:《劍指offer》面試題7

    http://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html



網(wǎng)站欄目:利用兩個棧實現(xiàn)隊列
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/ihciii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部