博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构--队列
阅读量:5838 次
发布时间:2019-06-18

本文共 580 字,大约阅读时间需要 1 分钟。

队列仅仅同意一端进行插入操作,还有一端进行删除操作。队列是一种先进先出的线性表。简称FIFO。同意插入的一段为队尾,同意删除的一端为队头。

顺序队列

与栈不同的是,队列的出队元素在队头,那么队列没出去一个元素,后面的元素就要依次像前移动。这样他的时间复杂度就是O(n)。

考虑上面截图的流程感觉效率非常低,起始我们的队列能够以还有一种方式来处理,就是元素不懂,而队头的指针移动。这样它的时间复杂度就为O(1)。

上面攻克了效率低的问题,可是会存在控件浪费的现象。之前已经出队的元素。控件还在那,以下我们引入循环队列的概念,解决问题。

我们把队列头尾相接的这种存储结构称之为循环队列。

rear:队尾所指向的队列位置。

font:队头所指向的队列位置。

QueueSize:队列最大长度。

推断队列是否满:(rear + 1) % QueueSize == font。

计算队列长度:(rear - font  + QueueSize ) % QueueSize

链队列

队列的链式存储结构与单链表的链式存储结构一致,仅仅只是是元素尾进头出,我们称之为链队列。

入队操作,将an的后继节点改为e的地址,然后尾节点指向e。

出队操作,

两个队列的选择。看详细的需求。与之前总结栈的差别一致,假设元素的大小确定则使用顺序队列最好,假设元素的大小不确定则使用连队列最好。

你可能感兴趣的文章
32、SpringBoot-整合Dubbo
查看>>
python面向对象基础
查看>>
HDU 2044 一只小蜜蜂(递归)
查看>>
docker 下 安装rancher 笔记
查看>>
spring两大核心对象IOC和AOP(新手理解)
查看>>
数据分析相关
查看>>
Python LDAP中的时间戳转换为Linux下时间
查看>>
微信小程序蓝牙连接小票打印机
查看>>
C++_了解虚函数的概念
查看>>
全新jmeter视频已经上架
查看>>
Windows 8下如何删除无线配置文件
查看>>
oracle系列(五)高级DBA必知的Oracle的备份与恢复(全录收集)
查看>>
hp 服务器通过串口重定向功能的使用
查看>>
国外10大IT网站和博客网站
查看>>
android第十一期 - SmoothSwitchLibrary仿IOS切换Activity动画效果
查看>>
zabbix 批量web url监控
查看>>
MongoDB CookBook读书笔记之导入导出
查看>>
shell如何快速锁定所有账号
查看>>
HTML 5实现的手机摇一摇
查看>>
此博客不再发表对自己私事的看法
查看>>