数组实现栈
1 | //使用index来代表栈顶位置,index=0,栈为空,index = size,栈满 |
622.循环队列
1 | public class MyCircularQueue { |
155.最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。
push(x) – 将元素 x 推入栈中。
pop() – 删除栈顶的元素。
top() – 获取栈顶元素。
getMin() – 检索栈中的最小元素。
1 | Stack<Integer> data = new Stack<>(); |
255.用队列实现栈
队列是先进先出的,我们准备两个队列data,helper,data存放入队的数据,pop的时候将前n-1个元素从data出队到helper中,这样data中就只剩下一个最先进队的元素,即可以达到先进后出的目的。
1 | private Queue<Integer> data = new LinkedList<>(); |
232.用栈实现队列
因为栈是先进后出,因此元素先进去一个栈push,在从该栈push出栈到另一个栈pop,这样,我们从pop中取出元素就可以达到先进先出的目的。
需要注意的是,元素从push到pop,需要满足两个条件:需要一次性将push栈元素出栈完;当pop中有元素时,不可以入栈。
1 | Stack<Integer> sta_pop = new Stack<>(); |