题目:用两个栈实现一个队列。请实现它的两个函数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
题目用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路用栈来模拟队列。我们首先插入一个元素a到stack1中,再压入两个元素bc,此时栈中有元素abc,其中c位于栈顶,而stack2仍然为空。我们试着删除一个元素。按照队列先进先出的原则,我们应该先删除元素a。元素a存放在stack1中且不在栈顶,因此不能直接删除。注意到stack2还未使用,我们把stack1中...
分类:
其他好文 时间:
2015-07-20 16:17:14
阅读次数:
103
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
问题描述定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。实现栈的push(), pop()及getMin()函数,要求函数的时间复杂度为O(1).解决思路使用两个栈,一个为普通栈,实现push和pop函数;另一个记录所有入栈元素的非递增序列;如下图所示:程序public class ...
分类:
其他好文 时间:
2015-06-28 20:05:05
阅读次数:
109
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1537因为给出的式子是必定合法的,只要用两个栈分别保存符号和数字.算出答案后和从左至右算的答案比对即可. 1 #include 2 #include 3 #include 4 #include ...
分类:
其他好文 时间:
2015-06-28 16:59:23
阅读次数:
111
利用两个栈,然后分别存储每一个链表。继而,相继pop相同的节点。有些细节需要注意,请看最后的返回值是如何处理的。/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListN...
分类:
其他好文 时间:
2015-06-01 00:43:34
阅读次数:
185
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。设两个栈为stack1,stack2;1:首先想到最简单的方法:是入栈时将数据压入stack1,出栈时将stack1中的元素出栈压入stack2,在将stack2栈顶元素弹出,再将stack2中的剩余元素重新...
分类:
其他好文 时间:
2015-05-31 16:35:29
阅读次数:
120
【要求】用两个队列queue1,queue2来实现栈的压栈和出栈功能。【分析】此问题类似于用两个栈实现队列的功能的思路,将队列queue1作为入栈专职,queue2作为中转,主要思路是,压栈时将所有元素全部进队queue1,出栈时由于要将queue1最后一个进来的元素输出,所以先将queue1除最后一个元素以外的所有元素转到queue2,出队输出最后一个元素后,将queue2所有元素出队,重新入队到...
分类:
其他好文 时间:
2015-05-27 19:05:45
阅读次数:
129