java专题——双栈实现队列
来源:互联网 发布:淘宝卡西欧手表真假 编辑:程序博客网 时间:2024/05/20 22:01
两个栈实现队列的方式:
原理——
建立连个栈,栈A和栈B,向栈A添加数据,当要获取数据时,从栈A中的数据“倒”到栈B中去,这样保证了栈B中的top指向的是栈A中最先入栈的值,然后取出来,这样就轻松的实现了所谓的FIFO先进先出。
package 双栈实现队列;import java.util.Stack;public class StackToQueue {//创建栈A和栈Bprivate Stack A;private Stack B;/** * 初始化栈A和栈B */public StackToQueue() {A = new Stack();B = new Stack();}/** * 入栈A * @param data * @return * @throws Exception */public Object push(Object data){return A.push(data);}/** * 出栈,先看栈B是否空,不空就直接出栈,否则就倒栈A,在出栈B * @return */public Object pop(){Object obj = null;if(!B.isEmpty()){return B.pop();}else{while(!A.isEmpty()){obj = A.pop();B.push(obj);}if(!B.isEmpty()){obj = B.pop();}}return obj;}/** * 测试 * @param args */public static void main(String[] args) { StackToQueue stq = new StackToQueue(); System.out.println("入栈:"); System.out.print(stq.push("A") + " "); System.out.print(stq.push("B") + " "); System.out.print(stq.push("C") + " "); System.out.println(); System.out.println("出栈:"); System.out.print(stq.pop() + " "); System.out.print(stq.pop() + " "); System.out.print(stq.pop() + " ");}}
0 0
- java专题——双栈实现队列
- java专题——双队列实现栈
- java专题——队列
- 数据结构专题——栈与队列之顺序栈及其Java实现
- 数据结构专题——栈与队列之链栈及其Java实现
- 数据结构专题——队列
- java专题——栈
- 队列——java实现
- 队列——Java实现
- 栈与队列专题
- 栈和队列专题
- java多线程-专题-聊聊并发(七)——Java中的阻塞队列
- java专题——栈stack应用
- 数据结构的Java实现——栈和队列
- java实现数据结构——栈Stack与队列Queue
- 数据结构Java实现——②队列
- 数据结构(Java)——队列的实现
- JAVA基础训练——用链表实现队列
- ebay电话面试
- 排序树 变成双向链表
- Android开发笔记之adb参数指南
- 访问oracle数据链路的blob字段值
- Android-布局管理 (五大布局控件使用)
- java专题——双栈实现队列
- MeegoMTP 编译过程遇到问题总结
- 1-2 APP接口介绍
- 服务器并发处理架构
- 【软工3】:软件工程视频知识总结
- 自嘲————嘀声
- Java之泛型和类加载器
- BroadcastReceiver广播接收者(五)——onReceive()中的耗时任务以及短信窃听
- eigrp重分布实验