使用栈来模拟队列的操作
来源:互联网 发布:帝国cms 东方头条 编辑:程序博客网 时间:2024/06/08 15:10
使用A和B两个栈来模拟队列,一个为入栈一个为出栈,这样来实现队列
这里我们直接使用Java类库提供的Stack来实现。
首先我们定义连个栈,一个放数据,一个出数据
判断B栈是否有元素,有元素则直接pop;
没有元素则需要我们将A里面的元素出栈然后放到B里面,再取出,即实现队列的先进先出
Java代码:
package v;import java.util.Stack;/* * 使用栈来模拟队列的操作 */public class MyQuenue<E> {/* * 使用Java类库里面的stack定义两个栈,一个用于出栈一个用于入栈 */ private Stack<E> stack=new Stack<E>(); private Stack<E> stack2=new Stack<E>(); /* * 入栈和出栈为了增加线程安全,使用了同步 */ public synchronized void put(E data){ stack.push(data); } public synchronized E pop(){ /* * 如果栈2为空,则把栈1里面的数据压到2里面,在出栈,即实现队列 */ if(stack2.isEmpty()){ while(!stack.isEmpty()){ stack2.push( stack.pop()); return stack2.pop(); } } //否则直接出栈、实现栈对模拟队列 return stack2.pop(); } public static void main(String[] args) {MyQuenue<Integer> myQuenue=new MyQuenue<Integer>();myQuenue.put(1);//第一元素myQuenue.put(3);//第二元素myQuenue.put(2);//第三元素System.out.println("栈模拟队列后head数据:"+myQuenue.pop());}}
完成
阅读全文
1 0
- 使用栈来模拟队列的操作
- 使用两个栈模拟队列的操作
- 002使用两个栈模拟队列的基本操作
- 使用堆栈来模拟队列
- LinkList模拟栈的操作以及模拟队列的操作
- 两个栈来模拟队列
- 两个栈来模拟队列
- 用两个栈来模拟队列
- 使用reader来模拟BufferedReader方法操作
- 两个队列模拟栈的操作(stl实现)
- 用集合模拟栈,队列的基本操作
- 使用两个栈模拟队列
- 使用LinkedList来模拟堆栈或队列数据结构
- 使用LinkedList来模拟一个堆栈或者队列数据结构
- 用两个栈模拟队列操作
- 如何用两个栈模拟队列操作
- 士兵队列操作模拟
- 用两个栈来实现一个队列,完成队列的add和poll、peek操作。
- TCP协议详解
- Osg3.4.0 OsgEarth2.8.0预编译库(VS2015 64bit)
- Android 常见广告库包名合集
- 从0到1走进 Kaggle
- 几处优秀的源码分析
- 使用栈来模拟队列的操作
- WINAPI 表白
- 账号密码
- Redis 数据类型之散列类型
- Java中数组复制的几种方法
- 2017年“嘉杰信息杯” 中国大学生程序设计竞赛全国邀请赛:E—Partial Sum
- C Primer Plus 第8章 字符输入/输出和验证输入 编程练习
- wildfly服务器系列--wildfly数据源配置(以postgreSQL为例)
- 洛谷ojFunction