当前位置: 首页 > 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://www.dtcms.com/wzjs/528721.html

相关文章:

  • 城建公司建设网站基础资料磁力岛引擎
  • 合肥 电子商务 网站建设各大网站域名大全
  • 设计logo网站生成器seo搜索引擎优化工资薪酬
  • 潍坊网站建设公司青岛网络推广
  • 手机做图片的网站百度推广关键词匹配模式
  • 有做外国人的零售网站吗碉堡了seo博客
  • 深圳做网站dejsurl中文转码
  • 江门住房城乡建设厅网站semantic ui
  • 自己建网站需要服务器么郑州网站网页设计
  • 网站建设开发图片免费隐私网站推广
  • 襄阳seo研究中心seo图片优化的方法
  • 可视化网站制作自媒体是如何赚钱的
  • 附近人才招聘市场seo排名优化哪家好
  • wordpress请提供一个地址才能继续seo优化招商
  • 自己设置免费网站设计平台58网络推广
  • 合肥做网站行吗google推广公司
  • 西安做网站设计公司优化落实疫情防控新十条
  • 网络营销网站建设论文seo优化顾问服务阿亮
  • 网站开发和web 百度一下
  • 河北邢台最新疫情seo外链优化
  • 禁止网站收录今日最新抗疫数据
  • 怎么做推广网站郑州短视频代运营
  • 关于网站建设 策划文案seo技术培训唐山
  • 提供网站建设商家企业网络营销业务
  • 黑龙江企业网站设计团队谈谈你对网络营销的认识
  • 域名转移影响网站访问吗自媒体平台注册官网
  • 网站友情链接要加什么用如何发布一个网站
  • 系统网站建设ppt大型网站建设方案
  • 太原网站设计开发公司网站站内关键词优化
  • 做网上任务赚钱的网站怎么网络推广