两个队列实现栈

思路

创新互联建站主营禄丰网站建设的网络公司,主营网站建设方案,App定制开发,禄丰h5小程序定制开发搭建,禄丰网站营销推广欢迎禄丰等地区企业咨询

a.插入:哪个队列中有数据就插入哪个队列

b.删除:把存在数据的队列弹出并压入另一队列,且只留最后一个数据,并且删除最后一个。

//test2.h
#include
#include
using namespace std;
template
class stackWithTwoQueue
{
public:
	stackWithTwoQueue();
	~stackWithTwoQueue();
	void addHead(const T& data);
	T deleteTail();
private:
	queue q1;
	queue q2;
};

//test2.cpp
#include "test1.h"
using namespace std;
template
stackWithTwoQueue::stackWithTwoQueue()
{}
template
stackWithTwoQueue::~stackWithTwoQueue()
{}
//哪个里有数据就加到哪个里
template
void stackWithTwoQueue:: addHead(const T& data)
{
	if(!q2.empty())
	{
		q2.push(data);
	}
	else
	{
		q1.push(data);
	}
}
//谁不为空就把它倒到另一个队列再直到只剩一个,最后删除那个
template
T stackWithTwoQueue::deleteTail()
{
	if(q1.empty()&&q2.empty())
	{
		cout<<"stack is empty!\n"< sw;
	sw.addHead(1);
	sw.addHead(2);
	sw.addHead(3);
	cout< sw;
	sw.addHead(1);
	sw.addHead(2);
	sw.addHead(3);
	cout<            
            
                            
当前名称:两个队列实现栈
浏览地址:http://pwwzsj.com/article/iedied.html