代码随想录训练营第十天| 232.用栈实现队列 、225. 用队列实现栈-爱代码爱编程
232.用栈实现队列
import java.util.Stack;
public class day10_232_用栈实现队列 {
public static void main(String[] args) {
}
//题目要求的是两个栈实现队列的功能
Stack<Integer> staint;
Stack<Integer> staout;//定义好两个栈
public day10_232_用栈实现队列(){
staint=new Stack<>();
staout=new Stack<>();
//这里是初始化两个队列
}
public void push(int x){
staint.push(x);
//就是把x直接push到int 的末尾
}
public int pop(){
if (staout.isEmpty()) {
while (!staint.isEmpty()) {
staout.push(staint.pop());
}
}
return staout.pop();
}
//这里两个栈是共纯的,拼一起还是一个玩着呢个栈
public int peek(){
if (staout.isEmpty()) {
while (!staint.isEmpty()) {
staout.push(staint.pop());
}
}
return staout.peek();
}
public boolean empty(){
return(staint.isEmpty()&&staout.isEmpty());
}
}
就是一个比较级基础的用栈试下队列,原理很简单,一个队列就相当于两个栈头对头的合在一起,想取第一个元素的时候把元素移动到后面的那个栈就行了。
225用队列实现栈
import java.util.ArrayDeque;
import java.util.Deque;
public class day10_225_用队列实现栈 {
Deque<Integer> que1;
public day10_225_用队列实现栈(){
que1=new ArrayDeque<>();
}
public void push(int x){
que1.addLast(x);
}
public int pop(){
return(que1.pollLast());
}
public int top() {
return que1.peekLast();
}
public boolean empty() {
return que1.isEmpty();
}
}
pop操作自己直接用了deque的polllast,