写在最前:学过,不系统
栈和队列,栈是一个非常常见的数据结构,它在计算机领域中被广泛应用,比如操作系统会给每一个线程创建一个栈用来存储函数调用的时候各个函数的参数、返回地址和临时变量等。栈的特点是后进先出,即最后被push 的元素最先被pop,栈是不考虑排序的数据结构,队列是另一种很重要的数据结构,和栈不同的是,队列的特点是先进先出。
剑指offer_07 用两个栈实现队列
题目1描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
拿到这个题目应该是按照剑指offer里面的思路,牛客里面给出了两个栈,下面用自己的话来说,
栈的特点是先进后出
队列的特点是先进先出,在上述的声明中可以看出,一个队列包含了两个栈static1 和static2,static1 用于入栈,stack2 用于弹栈。
代码实现在这里插入代码片
package 堆和栈;
import java.util.Stack;
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack1.push(node);
}
public int pop() {
if (stack2.empty()) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
}