⚠️注意:依靠栈实现队列的功能一定要使用两个栈。而队列实现栈功能一个队列即可。
1⃣️使用队列实现栈功能
import java.util.ArrayDeque;
import java.util.Queue;
/*
方法:可以使用链队来实现,也可以使用ArrayDeque来实现。
*/
public class MyStack {
Queue queue = new ArrayDeque<>();
private H topPointer = null;
public void push(H i) {
queue.offer(i);
topPointer = i;
}
public H pop() {
int size = queue.size();
while (size > 1) {
queue.add(queue.poll());
size--;
}
//保证top指针指向的永远是栈顶,此时还没删除栈顶元素
topPointer = queue.peek();
return queue.poll();
}
//注意getTop返回栈顶元素而不是指针
public H getTop() {
return topPointer;
}
public boolean isEmpty() {
if (queue.isEmpty())
return true;
return false;
}
}
2⃣️使用栈实现队列功能
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)