【剑指offer】两个栈实现一个队列
作者:互联网
题目:用两个栈实现一个队列
import java.util.Stack;
/**
* 用两个栈实现一个队列
*/
public class StackToQueue {
public static void main(String[] args) {
//进队
for (int i = 0; i < 5; i++) {
enqueue(i);
}
//出队
int size = size();
for (int i = 0; i < size; i++) {
System.out.println(dequeue());
}
}
//栈1负责出队操作
static Stack<Integer> stack1 = new Stack<>();
//栈2负责进队操作
static Stack<Integer> stack2 = new Stack<>();
/**
* 进队操作
*/
public static void enqueue(int node) {
stack2.push(node);
}
/**
* 出队操作
*/
public static int dequeue() {
//栈1为空时 将栈2的数据出栈 并对栈1进行进栈
if (stack1.size() <= 0) {
while (stack2.size() != 0) {
stack1.push(stack2.pop());
}
}
return stack1.pop();
}
/**
* 队列中元素个数
*/
public static int size() {
return stack1.size() + stack2.size();
}
}
执行结果:
0
1
2
3
4
标签:offer,队列,进队,public,实现,int,static,Stack,size 来源: https://blog.csdn.net/u013700502/article/details/116375733