用两个栈实现一个队列的功能
解析:
假设两个栈A和B,且都为空。
可以认为栈A提供入队列的功能,栈B提供出队列的功能。
入队列:入栈A、
出队列:
如果栈B不为空,直接弹出栈B的数据。 如果栈B为空,则依次弹出栈A的数据,放入栈B中,再弹出栈B的数据。
代码如下:
#include
#i...
分类:
其他好文 时间:
2015-08-03 22:49:21
阅读次数:
184
题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deletedHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能。
我们通过一个具体的例子来分析该队列插入和删除元素的过程。首先插入一个元素a,不妨先把它插入到stack1,此时stack1 中的元素有{a},stack2为空。再压入两个元素b和c,还是插入到stack1中,此时stack1中的元素有...
分类:
编程语言 时间:
2015-07-27 21:07:37
阅读次数:
5029
题目:用两个栈实现一个队列。请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入节点和在队列头部删除结点的功能。队列的声明如下:template class CQueue{public: CQueue(void); ~CQueue(void); // 在队列末尾添加一...
分类:
其他好文 时间:
2015-07-21 12:00:18
阅读次数:
118
用两个栈实现一个队列的功能。解题思路假设两个栈A和B,且都为空。
栈A提供push()功能,栈B提供pop()功能。
入队列:入栈A。
出队列:
如果栈B不为空,直接弹出B的元素。
如果栈B为空,则依次弹出栈A的元素并压入栈B中,再弹出B中的元素。
实现代码#include
#include
using namespace std;template<clas...
分类:
其他好文 时间:
2015-07-20 21:37:21
阅读次数:
101
LeetCode上面的一道题目,原文如下:
Implement the following operations of a queue using stacks.
push(x) -- Push element x to the back of queue.pop() -- Removes the element from in front of queue.peek() -- G...
分类:
其他好文 时间:
2015-07-14 11:23:27
阅读次数:
131
【题目】用两个栈实现一个队列,分别完成在队列尾部插入结点和在队列头部删除结点的功能。【分析】假设两个栈,栈1和栈2,来实现队列,栈1用来入队,栈2用来出队。
入队时,将元素全部压入栈1;
出队时,如果栈2不为空,就直接pop栈2,否则,就将栈1的所有元素pop到栈1里,再把栈2栈顶弹出。
由图所示,abcdef依次入队,压栈,出队时先将元素从s1弹出,压入s2,从s2出栈实现出队,即使后面再有...
分类:
其他好文 时间:
2015-05-27 10:23:41
阅读次数:
166
题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。
template class CQueue{
public:
CQueue();
~CQueue();
void appendTail(const T &node);
T deleteHead();
private:
st...
分类:
其他好文 时间:
2015-05-08 22:05:03
阅读次数:
156
栈是先进后出的,队列是先进先出的。栈顶在上面,栈是向上生长的,每次数据操作是压栈,最后的数据元素指向栈顶。实例:用两个栈实现队列题目:用两个栈实现一个队列,队列的声明如下,请实现他的连个函数,分别完成在队列尾部插入结点和在队列头部删除结点的功能。 1 templateclass CQueue 2 {...
分类:
其他好文 时间:
2015-04-27 19:58:59
阅读次数:
151
How to use two stacks to implement a queue ?今天看到的有意思的问题题,哇咔咔,简直益智类哇~
"""
Code writer : EOF
Code date : 2015.02.08
Code file : Queue_by_two_stack.py
e-mail : jasonleaster@163.comCode descriptio...
分类:
其他好文 时间:
2015-02-09 00:48:41
阅读次数:
182
算法思路:
一个栈用来入队列,一个栈用来出队列:
现有两个栈s1 和s2;s1用来入栈,比如 队列进入 1 2 3 4 5 那么s1进栈 1 2 3 4 5 ,现在要出队列,意思就是要1先出来;
那么我们把栈s1的数据取出来都压到栈s2当中,那么栈s2就是 5 4 3 2 1 ;s2再出栈,此时1出栈就模拟出出队列的效果;
编写代码:
// QueueFrom2Stack.cp...
分类:
编程语言 时间:
2014-12-08 19:40:39
阅读次数:
215