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

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

1. 定义(也是一种线性表)

2. 抽象数据类型

3. 循环队列

(1)顺序存储的不足

设一个队列的元素数为n,为其建立一个大于n的数组,在队头删除元素(下表0),在队为添加元素(下标最大处),此时会引起两个问题:

「1」每次在队头删除元素,若要保证下标始终为0,需要每删一个元素,数组所有元素整体向前移动。时间复杂度为O(0)

「2」 若每次在队头删除元素,不向前移动剩余元素,则在队尾添加元素至数组的最后一位时,元素不能再添加(产生数组越界错误),但实际上队列的前部还有存储单元。这种现象称为假溢出。

因此提出循环队列

(2)循环队列定义

「1」解决假溢出的办法是:后面满了,就再从头开始,即头尾相接的循环。这种顺序存储结构称为循环队列。

「2」3.1.2 中提出的问题:

「3」定义队列空:rear==front

「4」定义u队列满(两种方法):

method1:由于队列满也是rear==front,因此当队列中rear==front时,无法确定是队列空还是满

method2:(队列满时还有一个空余单元)常用

即如下情况,均已队满:

不允许出现:

「5」第二种情况下:设队列的最大尺寸是QueueSize

(3)循环队列代码:

4. 队列的链式存储结构(链队列)

「1」链队列的链式结构:

「2」入队操作(在链表结尾插入结点)

「3」出队操作

 

 

转载于:https://www.cnblogs.com/GuoXinxin/p/10010109.html

你可能感兴趣的文章
Unity获取手机的电量时间
查看>>
Spring框架:Spring容器具体解释
查看>>
MongoDB 3.2 从安装到使用。
查看>>
完全卸载oracle11g步骤
查看>>
再次说搜索
查看>>
spring测试
查看>>
c++ mfc 曲线图像的实现资料网址
查看>>
JetBrains系列WebStorm等中文输入法无法跟随光标的问题的解决办法
查看>>
解决Admob Banner首次展示不显示的问题
查看>>
系列6:进程间通信
查看>>
日志配置
查看>>
第四周作业 简单地邮件发送实现
查看>>
[转载]读史记札记26:容人岂皆有雅量
查看>>
表达式计算(模拟)
查看>>
Unity3D 游戏引擎之实现平面多点触摸(二)
查看>>
【Xilinx-Petalinux学习】-02-建立PetaLinux工程
查看>>
TeX中的引号
查看>>
Python 模块(module)
查看>>
region实现大纲效果
查看>>
day1
查看>>