当前位置:网站首页>Using queue to realize stack
Using queue to realize stack
2022-04-23 07:10:00 【Da Linzi xiansen】
Realize the idea :
1) Prepare two queues queue1, queue2( Queue feature first in first out , Stack features first in and last out ) 2) When entering the stack , Elements are inserted into queue1 in 3) Out of the stack , Do the following : 3.1) If queue2 It's empty , Will queue1 towards queue2 Copy , The last element left returns 3.2) If queue2 Not empty , Will queue2 towards queue1 Copy , The last element left returns
Go straight to the code :
import java.util.LinkedList;
import java.util.Queue;
/**
* @ClassName : MyStackWithQueue
* @Description: Stack through queue
* @Author: liulianglin
* @Date: 2021/11/17 23:36
* @Version : 1.0
*
Realize the idea :
1) Prepare two queues queue1, queue2( Queue feature first in first out , Stack features first in and last out )
2) When entering the stack , Elements are inserted into queue1 in
3) Out of the stack , Do the following :
3.1) If queue2 It's empty , Will queue1 towards queue2 Copy , The last element left returns
3.2) If queue2 Not empty , Will queue2 towards queue1 Copy , The last element left returns
*/
public class MyStackWithQueue {
private Queue<Integer> queue1 = new LinkedList<>();
private Queue<Integer> queue2 = new LinkedList<>();
/**
* Insert
* @return
*/
private boolean push(int ele){
return queue1.add(ele);
}
private Integer pop(){
if (queue2.size() == 0){
// If queue2 It's empty , Will queue1 towards queue2 Copy , The last element left returns
while (queue1.size() > 1) {
queue2.add(this.queue1.poll());
}
// Back at this point queue1 Last element of
return this.queue1.poll();
}else{
// If queue2 Not empty , Will queue2 towards queue1 Copy , The last element left returns
while(queue2.size() > 1){
queue1.add(this.queue2.poll());
}
return this.queue2.poll();
}
}
public static void main(String[] args) {
MyStackWithQueue myStackWithQueue = new MyStackWithQueue();
myStackWithQueue.push(1);
myStackWithQueue.push(2);
myStackWithQueue.push(3);
System.out.println(myStackWithQueue.pop());
System.out.println(myStackWithQueue.pop());
System.out.println(myStackWithQueue.pop());
}
}
版权声明
本文为[Da Linzi xiansen]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204230605322640.html
边栏推荐
猜你喜欢
随机推荐
BottomSheetDialogFragment 与 ListView RecyclerView ScrollView 滑动冲突问题
Oracle redo log产生量大的查找思路与案例
组件化学习(2)Arouter原理学习
Tiny4412 HDMI显示
MySQL笔记2_数据表
Itop4412 HDMI display (4.4.4_r1)
iTOP4412 SurfaceFlinger(4.0.3_r1)
oracle生成毫秒级时间戳
Itop4412 LCD backlight drive (PWM)
PG SQL截取字符串到指定字符位置
记录webView显示空白的又一坑
Component learning
npm ERR code 500解决
org.xml.sax.SAXParseException; lineNumber: 141; columnNumber: 252; cvc-complex-type.2.4.a: 发现了以元素 ‘b
Abnormal record-19
pycharm Install packages failed
RAC环境数据库节点参数设置不当导致监听无法连接问题排查
第三篇:docker安装mysql容器(自定义端口)
19C环境ORA-01035登陆报错处理
Abnormal record-17