两个栈实现一个队列的数据结构 算法
发布日期:2022-02-10 13:35:49
浏览次数:39
分类:技术文章
本文共 742 字,大约阅读时间需要 2 分钟。
首先清楚这两种数据结构的特点;
栈:先进后出;类似一个木桶放东西,只能从一个方向上放入以及取出;
队列:先进后出;类似一个管道,两边是相通的,规定只能从一边放入,从另一边取出;
两个栈实现队列的话,可以想像把两个桶A,B底部挨着构成一个管道,但是中部是阻隔住的;也就意味着出队列时,出完B这时队列到一半,无法继续出A的内容;这时需要将A整个出栈到B中,继续B出栈;就可以实现一个队列的效果;重点逻辑就是栈转移这一点;
代码实现
import java.util.Stack;public class Solution { Stackstack1 = new Stack (); Stack stack2 = new Stack (); public void push(int node) { stack1.push(node); } public int pop() { if(stack1.empty()&&stack2.empty()){ return '队列此时已经为空' }else{ if(stack2.empty()){ while(!stack1.empty()){ stack2.push(stack1.pop()); } } } return stack2.pop(); }}
转载地址:https://blog.csdn.net/zoooo_/article/details/110477709 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年03月03日 06时40分59秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
diy.php添加验证码,织梦dedecms自定义表单中加入验证码
2019-04-21
c语言 无错 但只运行一半,求哈夫曼编码时程序运行到一半就终止了,编译无错...
2019-04-21
android 限速工具,Android下载器之限速篇
2019-04-21
html刷新ajax实现原理,AJAX的原理—如何做到异步和局部刷新
2019-04-21
html中列表菜单加文字请选择,html中下拉菜单
2019-04-21
读书郎平板中android,读书郎学生平板电脑怎么用 使用方法详解【图文】
2019-04-21
html5 调用摄像头 支持IE,JS调用本地摄像头拍照(兼容各大浏览器及IE8+)
2019-04-21
es审计日志_elasticsearch 事务日志translog
2019-04-21
dw1510_超低温种子储存柜
2019-04-21
docker 查看容器磁盘大小_查看 docker 容器使用的资源
2019-04-21
python consul服务发现_Prometheus+Consul服务自动发现监控
2019-04-21
excel提取不规则字段_利用excel服务器来实现3级或者更多级的层级关联
2019-04-21