本文介绍下基础的两种数据结构,栈和队列。并用栈结构实现队列结构,用队列结构实现栈结构

栈就是只有一个口,出口和入口都是一个,所以先进来了后出去,后进来的先出去。比如进电梯,装货到货车的时候都类似一个栈结构。

队列

队列有两个口,一个入,一个出,所以先进来了先出去,后进来的后出去。我们平常排队都是这样的。

了解了基本的栈和队列的特性,我们看看这两个问题,现在只有栈,是否可以实现队列的特性,只有队列的时候,是否可以实现栈的特性。

栈结构实现队列结构

用两个栈就可以实现队列结构。因为栈是先进后出,队列是先进先出的,我们准备两个栈,一个压入,一个弹出,那么顺序就变成先进先出了。

这里有两个需要注意:

1、压入栈向弹出栈转移数据的时候,必须一次性把压入栈的数据全部转移

2、弹出栈不为空的时候,压入栈不能向弹出栈转移数据

如果不注意这两点,就会有问题的。

代码

队列结构实现栈结构

用两个队列也可以实现一个栈结构的。我们准备两个队列,一个主队列,压入和弹出操作都针对主队列。当我们要弹出数据的时候,把主队列的所有数据除了最后一个数据都转移到转移队列中,然后弹出队列中的最后一个数

当主队列弹出最后一个数后,交换两个队列的引用,转移队列成为主队列来负责数的压入,主队列变成转移队列等待下次的输出。

代码

希望对大家有所帮助,有帮助记得点赞哦!可以关注下,后面持续分享编程类的文章,谢谢!

java 栈和队列实现迷宫代码_用栈结构实现队列结构,用队列结构实现栈结构相关推荐

  1. java 栈和队列实现迷宫代码_算法图解:如何用两个栈实现一个队列?

    本文已收录至 https://github.com/vipstone/algorithm <算法图解>系列. 队列和栈是计算机中两个非常重要的数据结构,经过前面的学习(<队列> ...

  2. java 栈和队列实现迷宫代码_使用两个队列实现一个栈

    两个队列实现一个栈 栈的特点是后进先出,队列的特点是先进先出.使用两个队列模拟栈,实现栈的push,pop,top,empty 操作. 假设队列中均为数字,其中队列q1为操作队列,q2为辅助队列. p ...

  3. java 栈和队列实现迷宫代码_LeetCode每日一题--剑指 Offer 09. 用两个栈实现队列(Java)

    DailyChallenge 剑指 Offer 09. 用两个栈实现队列 Easy20200630 Description 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTai ...

  4. java 栈和队列实现迷宫代码_Python 实现数据结构中的的栈,队列

    栈 栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一端被称为栈顶,相对地,把另一端称为栈底.向一个栈插入新元素又称作进栈.入栈或压栈,它是把新元素放 ...

  5. 先来先服务算法代码_程序员算法与数据结构基础中的基础,栈与递归

    在此之前,我们介绍了动态规划.深度优先搜索等基础算法,但是,有部分好友评论说,难度太难了,我们知道动态规划的自顶向下跟深度优先搜索一般都用递归实现,今天我们就先来讲讲算法与数据结构中,基础中的基础递归 ...

  6. 消息队列控制灯代码_代码实现RabbitMQ死信队列的创建

    ‍ ‍前言:‍ ‍ 之前有写过死信队列的使用场景以及通过管控台创建死信.这次就通过代码实现死信队列的创建,同时也分享一下RabbitMQ封装的类. 准备: 1. 先准备一个死信队列(最后用来消费)的参 ...

  7. java入职写不出代码_各位程序员是怎么度过看懂代码但写不出来的时期?

    说实话,我自己就没经历过这样的时期. 说看得懂代码的,大概是很少看开源代码,想看懂不仅自己水平要过硬,还要花挺大的精力把前前后后的东西都做充分的研究. 我自己总是会有自己写一个功能很有思路,但是搞懂别 ...

  8. java 迷宫代码_老鼠走迷宫代码 JAVA

    展开全部 //老鼠走迷宫程序 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Maze1 ...

  9. java 怎么从性能上优化代码_月薪上万做好这一步:程序员职场中必须掌握的的Java代码性能优化技巧...

    尽量指定类.方法的final修饰符 Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化.此举大概能够使性能平均提高50%. 尽量重用对象 ...

  10. 数据结构迷宫代码_数据结构课程设计——迷宫求解(二)

    前言 接上文的介绍,本文将主要介绍如何生成随机迷宫,在网上找到的资源也比较多,这里我选取了随机 Prim 算法生成迷宫,选择这个算法的理由如下: 算法思想简单,易于实现 生成的迷宫比较自然,不会出现明 ...

最新文章

  1. 程序员也需要工匠精神
  2. Android 中文 API 文档 (45) —— AbsoluteLayout.LayoutParams
  3. 新手提升JSP技术能力的一点建议-调试篇
  4. C/C++语言简介之关键字
  5. Item9:总是要改写toString
  6. python魔法方法(一)
  7. linux 脚本在哪里编写,Linux 脚本编写基础(一)
  8. sw槽钢插件_SolidWorks所有实用插件详解一览
  9. php 模拟登陆微信,PHP微信模拟登陆并给用户发送消息的方法
  10. 使用onenote记HTML笔记,以记录网页上的内容为例,教你如何利用OneNote 2010轻松记录笔记...
  11. java后台管理系统做Excel导入
  12. Unity URP入门实战
  13. echarts世界地图,国家名称翻译
  14. VLC全部参数,libvlc_new函数参数,VLC SDK开发
  15. go语言 格式化输出fmt.Printf()使用大全
  16. 大华摄像头录像视频,可以使用PotPlayer剪切
  17. BZOJ3811: 玛里苟斯
  18. 边缘计算?相对于云计算
  19. 解决ios设备自带邮箱只能接收邮件不能发送邮件问题的方法
  20. Notion 团队人才画像

热门文章

  1. SLAM精度测评(绘制比较相机轨迹)- EVO
  2. OpenCV_霍夫变换_直线检测_HougLines
  3. 最小对/优先队列(C语言实现)
  4. opencv摄像头拍摄视频并保存方法
  5. 3D目标检测论文汇总
  6. 基于深度学习的视觉目标跟踪方法介绍
  7. Google是如何赚钱的 -- 四年工作离别小结
  8. bzoj 4883 [Lydsy1705月赛]棋盘上的守卫——并查集(思路!)
  9. 关于Junit中Assert已经过时
  10. python网络编程(进程与多线程)