利用两个栈实现一个队列
来源:互联网 发布:矩阵理论张绍飞 编辑:程序博客网 时间:2024/05/22 00:48
直接贴代码,注释都写在代码里面了
import java.util.Scanner;import java.util.Stack;/** * Created by acer on 2016/10/1. * 利用两个栈构建一个队列 *思路:1.进队列:直接将元素添加到栈1当中 * 2.出队列:(1)先将栈1中的所有元素入栈到栈2,再依次从栈2中pop即可。 * 注意:当栈2里面有元素的时候,栈1中的元素不能往里面加(没有刺激出栈的时候先判断栈2是否为空,如果空,栈s1全部入栈s2) */public class SolutionStack { static Stack<Integer> stack1=new Stack<Integer>(); static Stack<Integer> stack2=new Stack<Integer>(); public static void push(int e){ stack1.push(e); } public static int pop(){ //先将栈1中所有元素进入栈2,保证栈2中的元素是从无到有的增加,如果中间插入将会打乱顺序 if(stack2.size()==0){ while(stack1.size()!=0){ stack2.push(stack1.pop()); } } if(stack2.size()==0){ throw new RuntimeException("队列为空"); } return stack2.pop(); } public static void main(String[] args) { Scanner sc=new Scanner(System.in); int num=sc.nextInt(); for(int i=0;i<num;i++){ int data=sc.nextInt(); push(data); } System.out.println("输入队列首元素"); System.out.println(pop()); }}
0 0
- 利用两个栈实现一个队列
- 利用两个栈实现一个队列
- 利用两个队列实现一个栈
- 利用两个栈实现一个队列(C++版)
- 利用两个队列实现一个栈(C++版)
- 两个队列实现一个栈&两个栈实现一个队列
- 两个栈实现一个队列-----两个队列实现一个栈
- 两个栈实现一个队列&&两个队列实现一个栈
- 两个栈实现一个队列 && 两个队列实现一个栈
- 两个栈实现一个队列,两个队列实现一个栈
- 两个栈实现一个队列/两个队列实现一个栈
- 两个栈实现一个队列&两个队列实现一个栈
- 两个队列实现一个栈&两个栈实现一个队列
- 两个队列实现一个栈 / 两个栈实现一个队列
- 两个栈实现一个队列,两个队列实现一个栈
- 两个栈实现一个队列&两个队列实现一个栈
- 两个栈实现一个队列&&两个队列实现一个栈
- 两个栈实现一个队列&两个队列实现一个栈
- 封装一个JSONP方法
- 有关一些正则表达式的元字符
- web应用-论坛
- 相对布局控制控件居右显示
- 线性表
- 利用两个栈实现一个队列
- 线性布局控制控件居右显示
- Keras笔记 -- objective
- [bzoj 3687] 简单题:bitset,DP
- BPTT-应用于简单的循环神经网络
- 嗯嗯
- Matlab基础之矩阵循环
- 七层网络协议
- TCP/IP协议