
栈
文章平均质量分 78
tanyujing
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用两个栈实现队列
题目:某队列的声明如下: templatetypename T>class CQueue { public: CQueue() {} ~CQueue() {} void appendTail(const T& node); // append a element to tail void deleteHead();原创 2013-01-17 11:22:30 · 1010 阅读 · 0 评论 -
设计包含min函数的栈[数据结构]
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。 分析:这是去年google的一道面试题。 我看到这道题目时,第一反应就是每次push一个新元素时,将栈里所有逆序元素排序。这样栈顶元素将是最小元素。但由于不能保证最后push进栈的元素最先出栈,这种思路设计的数据结构已经不是一个栈了。 在栈里添加一个成员变量存放原创 2013-01-02 20:23:16 · 625 阅读 · 0 评论 -
设计包含max函数的队列
问题: 假设有这样一个拥有3个操作的队列: 1.EnQueue(v)看,将v加入队列中 2.DeQueue:使队列中的队首元素删除并返回此元素 3.MaxElement:返回队列中的最大元素 设计一种数据结构和算法,让MaxElement操作的时间复杂度尽可能的降低。 分析与解法: 先实现一个带有max函数的栈,然后用两个栈实现一个队列 import java.util.Linke原创 2013-03-20 11:22:58 · 1770 阅读 · 0 评论 -
栈的push,pop序列
题目:输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。 比如输入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一个pop系列。因为可以有如下的push和pop序列:push 1,push 2,push 3,push 4,pop,push 5,pop,pop,原创 2013-04-10 14:57:17 · 6588 阅读 · 0 评论