利用栈Stack实现队列(Queue)
来源:互联网 发布:淘宝拖鞋批发 编辑:程序博客网 时间:2024/05/16 08:19
实现说明:
入队时,将元素压入s1;
出队时,判断s2是否为空,如不为空,则直接弹出顶元素;如为空,则将s1的元素逐个“倒入”s2,把最后一个元素弹出并出队;
这个思路,避免了反复“倒”栈,仅在需要时才“倒”一次。
package com.knowledgeStudy.threadLocal;import java.util.Stack;public class MyQueue { Stack<Object> s1 = new Stack<Object>();//入栈 Stack<Object> s2 = new Stack<Object>();//出栈 // Push element x to the back of queue. public void push(Object x) { s1.push(x); } // Removes the element from in front of queue. public void pop() { if (!s2.isEmpty()) { s2.pop(); } else { while (!s1.isEmpty()) { s2.push(s1.pop()); } s2.pop(); } } // Get the front element. public Object peek() { if (!s2.isEmpty()) { return s2.peek(); } else { while (!s1.isEmpty()) { s2.push(s1.pop()); } return s2.peek(); } } // Return whether the queue is empty. public boolean empty() { return s1.empty() && s2.empty(); } //测试 public static void main(String[] args) { MyQueue queue = new MyQueue(); queue.push(1); queue.pop(); System.out.println(queue.empty()); }}
0 0
- 利用栈Stack实现队列(Queue)
- 使用栈Stack实现队列Queue
- python实现stack(栈)和队列(queue)
- Java实现栈Stack和队列Queue
- stack 栈 queue 队列
- 栈Stack和队列Queue
- 栈stack与队列queue
- 栈Stack和队列Queue
- 面试题---使用栈stack实现队列queue
- java实现数据结构——栈Stack与队列Queue
- 栈,队列 以及 stack, queue 的相互实现
- 栈,队列 以及 stack, queue 的相互实现 .
- Java实现数据结构栈stack和队列Queue
- 用两个栈(Stack)实现一个队列(Queue)
- 用两个栈(Stack)实现一个队列(Queue)
- 用两个栈(Stack)实现一个队列(Queue)
- 自己实现一个栈(Stack)和队列(Queue)
- 用两个队列(Queue)实现一个栈(Stack)
- 【iOS】TableView的footerView不随cell滚动而停留在tableView底部的问题
- poj3177
- Android中 ScrollView(ListView)中嵌套ListView时显示不全的简便解决方案
- PCI总线协议(一)
- 利用UICollectionView 实现 页面瀑布流效果
- 利用栈Stack实现队列(Queue)
- iOS开发UI篇—Button基础
- RMQ-区间最值问题
- Volley框架个人心得体会
- 可重入和不可重入的概念
- 解决 Eclipse 卡在Android SDK Content Loader 问题
- 一步一步教你搭建基于docker的MongoDB复制集群环境
- c++ STL map的增加删除遍历操作
- HDU 4602 Partition 数学水题...