大话数据结构 -04-3 队列
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 队列相关推荐
- 大话数据结构-栈与队列
文章知识点来至于大话数据结构里边章节知识, 这篇主要介绍栈与队列在计算机中存储形式, 以及在某些算法领域中对栈和队列的相关应用.章节最后介绍了著名的逆波兰表达式, 以及通过算法来实现该表达式的运算过程 ...
- 大话数据结构—栈与队列
栈 一.栈的定义 栈是(stack)是限定尽在表尾进行插入和删除操作的线性表. 栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构. 二.进栈出栈变化形式 注意: 并不是 ...
- 大话数据结构11:队列 链表结构
基础介绍 用链表实现的队列 代码 #include "stdio.h" #include "stdlib.h" #include "io.h" ...
- 大话数据结构系列之链队列结构(十二)
文章目录 定义 链队列 VS 循环队列 链队列代码实现( C .Java ) 定义 队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出而异,我们把它简称为链队列 链队列 VS 循环队列 ...
- 大话数据结构04:循环链表
1.头指针法 #include "stdio.h" #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0#defi ...
- 大话数据结构及JAVA数据结构阅读笔记
目录 一.大话数据结构随书阅读笔记 第一章 数据结构概述 第二章 算法概述 第三章 线性表 第四章 栈与队列 第五章 串 第六章 树 第七章 图 第八章 查找 第九章 排序 二.大话数据结构思维导图 ...
- 《大话数据结构》读书笔记-栈与队列
写在前面:本文仅供个人学习使用.<大话数据结构>通俗易懂,适合整体做笔记输出,构建体系.并且文中很多图片来源于该书. 文章目录 4.2栈的定义 4.2.1 栈的定义 4.2.2 进栈出栈变 ...
- 大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第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 第 ...
- 《大话数据结构》3、4、5线性表、栈与队列、串
第3章线性表 41 线性表:零个或多个数据元素的有限序列. 3.1开场白 42 门外家长都挤在大门口与门里的小孩子的井然有序,形成了鲜明对比.哎,有时大人的所作所为,其实还不如孩子. 3.2线性表的定 ...
- 《大话数据结构》简体中文版勘误
尽管已经很仔细的检查和审核,但错误还是没有能避免.以下的错误,有些是作者的笔误或者表述不清,有些是编辑审稿时不理解造成的错误,有些是美编改图时的错误,有些是印刷厂印刷时的错误.虽然出错的原因很多,但总 ...
最新文章
- c# 访问hbase_大数据技术 windows下C#通过Thrift操作HBase
- 进入前端开发这个领域 ,请问如何进行系统的学习?
- nodejs 实现抓取数据
- NOIP模拟测试20「周·任·飞」
- Android官方开发文档Training系列课程中文版:分享简单数据之添加简单的分享行为
- VS2010项目配置详解
- java类库支持_第十二章:开发支持类库
- @ 添加属性(属性注入)
- 图像中值滤波器python实现
- 如何将php改成mp4,如何将swf转换成mp4
- 栈这种数据结构,不就后进先出?
- CVPR2021:单目实时全身动作捕捉(清华大学)
- android高仿股票源码,StockChart 自定义股票行情图,高仿某币 app 行情图 @codeKK Android开源站...
- jquery append添加的元素用jquery无法获取到
- Spring Boot多数据源配置并通过注解实现动态切换数据源
- 基于python和amap(高德地图)web api的爬虫,用于搜索某POI点
- 网络安全和黑客技能:15本必读书籍推荐
- MySQL数据库基础知识12,MySQL单列索引和联合索引
- 中兴c300 OLT配置SFU
- 2022速看靓号邮箱购买大全 邮箱购买注意事项有哪些 怎么注册
热门文章
- matlab条形指纹拼接,matlab实现的两幅指纹图像的拼接
- android 使用pdf文件大小,Android 加载PDF文件的使用
- python指定时间范围数据_Python提取特定时间段内数据的方法实例
- java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String
- Apollo限制app获取配置
- Faker 快速构造测试数据
- Kafka监控:Kafka-Manager
- Windows Server_2008下搭建个人下载服务器(FTP)
- PostgreSQL初学
- P NP NPC NP hard