
编程题之栈队列类
qq_33436509
这个作者很懒,什么都没留下…
展开
-
用两个栈来实现一个队列,完成队列的Push和Pop操作
题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:先入栈,后出栈,再入第二个栈 ,再从第二个栈中去元素 然后popclass Solution{public: void push(int node) { stack1.push(node); } int pop() { if...原创 2018-08-31 14:06:11 · 391 阅读 · 0 评论 -
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数
题目:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))思路:用一个辅助栈,入栈时,元素和辅助栈中较小的元素 压入辅助栈中。辅助栈和栈的元素的个数要一样。辅助栈为空时,要入栈。class Solution {public: void push(int value) { m_data.push(value);...原创 2018-08-31 14:25:57 · 247 阅读 · 0 评论 -
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:借助辅助栈,从源序列中压入一个元素时,top与目标序列比较,如果相等,目标序列下标+...原创 2018-08-31 14:42:12 · 2097 阅读 · 0 评论