package stack;import java.util.LinkedList;import java.util.Queue;/*** @author dx* @version 1.0* @date 2022年3月27日 15:07* @description: 用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop、empty)* 实现MyStack类:* void push(int x) 将元素x压入栈顶* int pop() 移除并返回栈顶元素* int top() 返回栈顶元素* boolean empty() 如果栈是空的,返回true,否则返回false*/public class Que_to_Stack {Queue<Integer> q1 = null;Queue<Integer> q2 = null;public Que_to_Stack(){q1 = new LinkedList<Integer>(); //用q1模拟存储栈元素q2 = new LinkedList<Integer>(); //让q2始终是保证是空的,用来push新元素,然后去poll q1队列插入到新元素的后面}public void push(int x){q2.offer(x);while(!q1.isEmpty()){ //清空q1 待q2交换q2.offer(q1.poll());}Queue<Integer> temp = q1;q1 = q2;q2 = temp;}public int pop(){return q1.poll(); //poll从队列中获取第一个元素并删除}public int top(){return q1.peek();}public boolean empty(){return q1.isEmpty();}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。