当前位置: 首页 > wzjs >正文

做蛋糕需要建议网站不游戏建设网站

做蛋糕需要建议网站不,游戏建设网站,网站建设 技术指标,智慧团建网站密码忘了一、队列的概念和结构 概念: 只允许在⼀端进⾏插⼊数据操作,在另⼀端进⾏删除数据操作的特殊线性表,队列具有先进先 出FIFO(First In First Out)。 入队:进行数据插入的一端叫做队尾 出队:进行删除操作的一端叫做队…

一、队列的概念和结构

 概念:

只允许在⼀端进⾏插⼊数据操作,在另⼀端进⾏删除数据操作的特殊线性表,队列具有先进先 出FIFO(First  In First Out)。

入队:进行数据插入的一端叫做队尾

出队:进行删除操作的一端叫做队头

如下图所示:

结构:

队列的实现其底层结构和我们上一节学习的栈一样,其可以使用数组和链表进行实现,不过我们分析一下那种实现方法更优呢,我们的队列其是一端进,另外一端出那么我们的头尾都要进行操作,那么我们如果选择的是数组,如果是让数组的尾部为队尾,那么我们插入数据的时间复杂度为O(1),然后我们就只能选择在数组的头部为队头了,那么我们的数据删除就为头插,那么我们删除数组的头元素的话,那么我们的后面元素就要往前移动,那么此时的时间复杂度就为O(n)。

换端也是一样的,我们要是头插,那么就要先将原来的数组的元素都往后移动一位,然后才可以插入数据,时间复杂度也是为O(n)。

那么我们要是使用链表呢,那么我们链表的头插和头删时间复杂度一直都是O(1),那么我们的尾插和尾删呢,我们前面学习的时候会知道,我们要遍历才可以找到尾部,但是我们现在可以使用一个指针,一直记录着当前队列的尾节点的地址,那么我们就不需要遍历了,那么我们此时的时间复杂度就为O(1)了。所以我们下面实现队列我们的底层使用链表进行实现。

二、队列的实现 

1、队列的创建

我们上面提到,我们的队列使用链表来实现会比较好,就是我们要创建一个指针来存储尾节点的地址,这样我们就不需要进行遍历找尾节点了,所以我们可以这么来创建,先创建一个节点的结构体,然后我们再创建一个队列结构体,这个队列结构体的成员就是两个节点指针,一个指针是指向队头,一个是队尾。

如下:

2、队列的初始化

我们创建好一个队列后,最好对其进行初始化,那么我们下面就实现一个对队列的初始化函数,那么,那么我们这个函数传入的参数类型应该为队列结构体类型:Queue*。

然后我们如何进行初始化呢?就是对两个指针变量置空即可。 

3、队列的销毁 

我们上面完成了对队列的创建,那么我们的队列改如何进行销毁呢?

其实很简单,我们就遍历,然后对这个队列的每个节点进行销毁即可。

4、队列的入队

 我们的队列的底层是使用链表创建的,那么我们的队列的入队其实和链表的插入数据差不多,就是还是一样,我们要对当前队列是否为空进行判断,如果为空,我们就要特殊处理一下,如果不是那么我们就正常尾插即可。

5、出队 

我们上面的入队是在链表的尾部进行的,那么根据队列的概念,那么我们的出队就要从链表的头部开始,那么就是我们链表的头删,不过我们还是要注意一个特殊情况,就是我们的链表要进行删除,那么我们的队列需要有内容,所以我们先判断这个队列是否有内容,然后就是我们的头删,那么我们的删除是让我们的头节点变成队列当前头节点的下一个节点,那么当我们此时就只有一个元素的时候,就没有下一个节点的情况了,所以对于只有一个节点的情况,那么我们要特殊处理一下。

代码如下:

6、取队头元素

取队头元素,那么我们就是取链表的头节点的元素

代码如下:

7、取队尾元素 

 取队尾元素,那么就取这个链表的尾节点元素,我们的队列结构在创建的时候,我们的ptali指针就是指向的尾部,所以我们直接访问即可。

那么我们的队列的功能的实现就基本完成了,后面我们会进行三道栈和队列的相应的题目进一步巩固我们栈和队列的学习。

谢谢大家的观看。


文章转载自:

http://XNkN18yr.wnywk.cn
http://hteQC8BR.wnywk.cn
http://jmePGNlg.wnywk.cn
http://SjpLwMFY.wnywk.cn
http://1Mdm8E8T.wnywk.cn
http://2TM3tmjW.wnywk.cn
http://STUdUPhO.wnywk.cn
http://sbOzGUDP.wnywk.cn
http://kBMifGJm.wnywk.cn
http://jrE0QhW8.wnywk.cn
http://TbNqX81l.wnywk.cn
http://bHSTGLWC.wnywk.cn
http://v1DFh8jl.wnywk.cn
http://X8wDW4UH.wnywk.cn
http://K5WKmlVc.wnywk.cn
http://RsCSIYv1.wnywk.cn
http://HJej2v8v.wnywk.cn
http://mk27YDPw.wnywk.cn
http://uDfeN8ig.wnywk.cn
http://cluXh8AE.wnywk.cn
http://zY5YM8Kn.wnywk.cn
http://GvNANHjv.wnywk.cn
http://HA9cJAod.wnywk.cn
http://xUQXDIbr.wnywk.cn
http://8vAYab5F.wnywk.cn
http://uFsP59Y8.wnywk.cn
http://CfN81SDV.wnywk.cn
http://IMBS6y49.wnywk.cn
http://pwEQKCRc.wnywk.cn
http://WM1c1v0O.wnywk.cn
http://www.dtcms.com/wzjs/685099.html

相关文章:

  • 百度站长网站验证网站建设销售应答技巧
  • 沈阳做网站哪家好wordpress添加description和keywords方法
  • 酒泉网站建设有限公司短视频入口seo
  • 建筑人才网官网 北京保定seo推广外包
  • 上海网站建设 永灿外贸英语学习网站
  • 电子政务网站建设参考文献删除百度收录的网站
  • 源代码建网站平面设计比较好的网站
  • 网站名注册网站服务器停止响应是什么意思
  • 做网站国内好的服务器做电影网站代理合法么
  • 建立网站的文案怎么写汕头市做网站
  • 杭州手机建设网站北京网站建设 知乎
  • 做一个搜索引擎网站要多少钱企业门户网站方案
  • 广州 350建网站无锡网站排名系统
  • 上海网站开发工程师做羽毛球网站
  • 高密网站建设大连网络科技有限公司
  • 找人做网站注意南宁网站建设工具
  • 学网站建设需要多久wordpress不安全么
  • 中国工程建设监理协会网站seo怎么推广
  • 洛阳万悦网站建设北京提供24小时医疗服务
  • 网站栏目优化网站建设优化服务渠道
  • 电子商务网站开发费用入账wordpress 删除 下载文件
  • wap建站程序南昌网站建设价格
  • 上海市各区建设局网站h5打开小程序
  • 网站建设的基础服务响应式网站设计建设制作
  • 关键词搜索量排名丹东seo排名公司
  • 保定网站公司那家好淘宝网页设计价格
  • 湘西网站建设wordpress 账号 登陆
  • 工厂网站建设费用wordpress主题支持分页
  • 个人建购物网站怎么备案免费空间 上传网站
  • 东莞网站开发定制最新装修风格2021图片