两个栈模拟队列

本文介绍了一种使用两个栈来实现队列的方法。通过将一个栈用于入队操作,另一个栈用于出队操作,可以有效地模拟队列的先进先出特性。在进行入队操作时,所有元素从第二个栈转移到第一个栈并加入新元素;出队时则反向操作。
//试给出用两个栈所定义的队列。(说明思路,完成deQueue和enQueue即可)
//代码未测试。。。
/*
一个栈顺着存,一个栈倒着存,具体说不清。。。
*/

template <class T>
class stk_queue
{
	public:
		stack <T> stk_1;
		stack <T> stk_2;
		void enQueue(T temp)
		{
			while (!stk_2.empty())
			{
				stk_1.push(stk_2.top());
				stk_2.pop();
			}
			stk_1.push(temp);
		}
		void deQueue()
		{
			while (!stk_1.empty())
			{
				stk_2.push(stk_1.top());
				stk_1.pop();
			}
			stk_1.pop();
		}
}

转载于:https://my.oschina.net/locusxt/blog/167036

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值