在Java中,我们使用双端队列模拟队列与栈,如上图所示,双端队列只从队的头进(便于理解我们假设只从一头进),但是头与尾都可以出,如果从头出那么就是栈,如红线虚框,从尾出就是队列,如蓝线虚框
1.模拟栈
栈是先进后出,那么从双端队列的队头进入元素即为进栈,从双端队列队头出队即为出栈
Deque<String> deque=new LinkedList<String>();
System.out.println("------------模擬棧-------------");
//進棧
deque.addFirst("盘子1");
deque.addFirst("盘子2");
deque.addFirst("盘子3");
//取棧頂元素不退棧
System.out.println("棧頂元素:"+deque.getFirst());
//取棧頂元素退棧
System.out.println(deque.pop());
System.out.println(deque.pop());
System.out.println(deque.