首页 > TAG信息列表 > stackpop
算法-06由两个栈组成的队列
描述 用两个栈实现队列,支持队列的基本操作。 输入描述: 第一行输入一个整数N,表示对队列进行的操作总数。下面N行每行输入一个字符串S,表示操作的种类。如果S为"add",则后面还有一个整数X表示向队列尾部加入整数X。如果S为"poll",则表示弹出队列头部操作。如果S为"peek",则表示询问当前232. 用栈实现队列
题目 https://leetcode-cn.com/problems/implement-queue-using-stacks/ 思路 创建两个栈,一个专门用来pop()数据,一个专门用来存数据。 当stackPop不为空的时候(stackPop的数够用,pop(),peek()可以正常操作),stackPush()就用来存后边add来的数。 当stackPop为空的时候,就把stackPush(与栈相关的问题
1.设计一个栈,在其基础功能的基础上,设计一个getMin方法,每次调用时返回当前栈内的最小值。 要求:时间复杂度为O(1),可使用现成的栈结构。 思路:设计该栈有两个栈,一个保存正常数据stackData,一个保存正常数据中的较小值stackMin。在新数据压入栈时,比较其与stackMin中栈顶元素,如果新数据小利用栈实现队列
public class MyQueue { private Stack<Integer> stackPush; private Stack<Integer> stackPop; public MyQueue() { stackPush = new Stack<Integer>(); stackPop = new Stack<Integer>(); } public void push(int pus002-由两个栈组成的队列
package com.my.suanfa; import java.util.Stack; /* * 由两个栈组成的队列 * 向stackPop中压入数据的时机有很多。在这里选择出队和查看队头元素时压入 * 但是压入数据要满足两条: * 1.只能在stackPop为空时才能压入数据 * 2.如果需要压入数据,则必须将stackPush中的数剑指offer-用两个栈实现队列05
class Solution: def __init__(self): self.stackpush=[] self.stackpop=[] def push(self, node): # write code here self.stackpush.append(node) def pop(self): # return xx if len(self.stackpop)==0: