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. Don‘t entangle those useless things
  2. window7/10 安装Tomcat
  3. Java微信公众平台开发(四)--回复消息的分类及实体的创建
  4. Flume概述和简单实例
  5. 计算机网络的协议与体系结构
  6. find your place
  7. HTML5新增标签的汇总与详解
  8. 2018年4月13日_Java的最新发展– 2018年4月下旬
  9. java 秒杀多线程_秒杀多线程系列 - 随笔分类 - Joyfulmath - 博客园
  10. 使用openssl完成aes-cbc模式的数据加解密,输入和输出都是字符串的形式
  11. 【c# 学习笔记】所有类的父类:System.object
  12. pythoncsv格式列变换_用Python将csv行转换为列
  13. Centos为什么比不过Ubuntu和Debian?
  14. 无聊玩玩俄罗斯方块,用python自己做不带广告
  15. Windows Server 2019安装Intel I219-V I211网卡驱动
  16. pod 文件管理服务器,k8s中pod的状态管理
  17. 刘德华郑秀文喜剧大片《魔幻厨房》DVD国语中字
  18. WINVNC源码分析(四)
  19. CS229 机器学习课程复习材料-线性代数
  20. 无法启动计算机的杀毒软件,电脑中毒杀毒软件无法启动任务管理器也被禁用怎么办?...

热门文章

  1. php过滤文件中的空行,如何从PHP文本中删除空行?
  2. mysql pxc启动_Percona XtraDB Cluster(PXC) 无法正常启动
  3. Android tv开发px,【Android】TV端项目开发挖坑总结
  4. 二进制数据与16进制字符串相互转化方法
  5. vue 运行报错Module build failed: Error: Node Sass does not yet support your current environment: Windows
  6. ORA-12514:tns监听程序当前无法识别连接描述符中请求服务;ORA-03113:通信通道的文件结尾
  7. 【Foreign】字串变化 [DP]
  8. 精通Python网络爬虫:核心技术、框架与项目实战.1.4 网络爬虫的类型
  9. Android实用笔记——使用ViewFlipper实现屏幕切换动画
  10. 【APP】Linux运维利器--Grep命令及正则表达式