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

大话数据结构 -04-3 队列相关推荐

  1. 大话数据结构-栈与队列

    文章知识点来至于大话数据结构里边章节知识, 这篇主要介绍栈与队列在计算机中存储形式, 以及在某些算法领域中对栈和队列的相关应用.章节最后介绍了著名的逆波兰表达式, 以及通过算法来实现该表达式的运算过程 ...

  2. 大话数据结构—栈与队列

    栈 一.栈的定义 栈是(stack)是限定尽在表尾进行插入和删除操作的线性表. 栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构. 二.进栈出栈变化形式 注意: 并不是 ...

  3. 大话数据结构11:队列 链表结构

    基础介绍 用链表实现的队列 代码 #include "stdio.h" #include "stdlib.h" #include "io.h" ...

  4. 大话数据结构系列之链队列结构(十二)

    文章目录 定义 链队列 VS 循环队列 链队列代码实现( C .Java ) 定义 队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出而异,我们把它简称为链队列 链队列 VS 循环队列 ...

  5. 大话数据结构04:循环链表

    1.头指针法 #include "stdio.h" #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0#defi ...

  6. 大话数据结构及JAVA数据结构阅读笔记

    目录 一.大话数据结构随书阅读笔记 第一章 数据结构概述 第二章  算法概述 第三章 线性表 第四章 栈与队列 第五章 串 第六章 树 第七章 图 第八章 查找 第九章 排序 二.大话数据结构思维导图 ...

  7. 《大话数据结构》读书笔记-栈与队列

    写在前面:本文仅供个人学习使用.<大话数据结构>通俗易懂,适合整体做笔记输出,构建体系.并且文中很多图片来源于该书. 文章目录 4.2栈的定义 4.2.1 栈的定义 4.2.2 进栈出栈变 ...

  8. 大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 21

    大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 211 第 ...

  9. 《大话数据结构》3、4、5线性表、栈与队列、串

    第3章线性表 41 线性表:零个或多个数据元素的有限序列. 3.1开场白 42 门外家长都挤在大门口与门里的小孩子的井然有序,形成了鲜明对比.哎,有时大人的所作所为,其实还不如孩子. 3.2线性表的定 ...

  10. 《大话数据结构》简体中文版勘误

    尽管已经很仔细的检查和审核,但错误还是没有能避免.以下的错误,有些是作者的笔误或者表述不清,有些是编辑审稿时不理解造成的错误,有些是美编改图时的错误,有些是印刷厂印刷时的错误.虽然出错的原因很多,但总 ...

最新文章

  1. c# 访问hbase_大数据技术 windows下C#通过Thrift操作HBase
  2. 进入前端开发这个领域 ,请问如何进行系统的学习?
  3. nodejs 实现抓取数据
  4. NOIP模拟测试20「周·任·飞」
  5. Android官方开发文档Training系列课程中文版:分享简单数据之添加简单的分享行为
  6. VS2010项目配置详解
  7. java类库支持_第十二章:开发支持类库
  8. @ 添加属性(属性注入)
  9. 图像中值滤波器python实现
  10. 如何将php改成mp4,如何将swf转换成mp4
  11. 栈这种数据结构,不就后进先出?
  12. CVPR2021:单目实时全身动作捕捉(清华大学)
  13. android高仿股票源码,StockChart 自定义股票行情图,高仿某币 app 行情图 @codeKK Android开源站...
  14. jquery append添加的元素用jquery无法获取到
  15. Spring Boot多数据源配置并通过注解实现动态切换数据源
  16. 基于python和amap(高德地图)web api的爬虫,用于搜索某POI点
  17. 网络安全和黑客技能:15本必读书籍推荐
  18. MySQL数据库基础知识12,MySQL单列索引和联合索引
  19. 中兴c300 OLT配置SFU
  20. 2022速看靓号邮箱购买大全 邮箱购买注意事项有哪些 怎么注册

热门文章

  1. matlab条形指纹拼接,matlab实现的两幅指纹图像的拼接
  2. android 使用pdf文件大小,Android 加载PDF文件的使用
  3. python指定时间范围数据_Python提取特定时间段内数据的方法实例
  4. java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String
  5. Apollo限制app获取配置
  6. Faker 快速构造测试数据
  7. Kafka监控:Kafka-Manager
  8. Windows Server_2008下搭建个人下载服务器(FTP)
  9. PostgreSQL初学
  10. P NP NPC NP hard