青岛大学_王卓老师【数据结构与算法】Week05_12_队列的类型定义_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。

一方面用于学习记录与分享,

另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。

如有侵权,请留言作删文处理。

课程视频链接:

数据结构与算法基础–第05周12–3.5队列的表示和实现1–3.5.1队列的类型定义

📚 【Week05】12_队列的类型定义

队列相关术语

队列(Queue)是仅在表尾进行插入操作,在表头进行删除操作的线性表。

表尾即 a_n 端,称为队尾;表头即 a_1 端,称为队头

队列是一种先进先出( FIFO )的线性表

例如
在这里插入图片描述

插入元素称为入队;删除元素称为出队

队列的存储结构为链队顺序队(常用循环顺序队)

队列的相关概念

(1) 定义

限定只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表(头删尾插

(2) 逻辑结构

与同线性表相同,仍为一对一关系。

(3) 存储结构

顺序队链队存储,但以循环顺序队列更常见。

(4) 运算规则

只能在队首和队尾运算,且访问结点时按照先进先出(FIFO)的原则。

(5) 实现方式

关键是掌握入队出队操作,具体实现依顺序队或链队的不同而不同。

队列的常见应用

脱机打印输出: 按申请的先后顺序依次输出

多用户系统中,多个用户排成队,分时地循环使用CPU和主存

按用户的优先级排成多个队,每个优先级一个队列

实时控制系统中,信号按接收的先后顺序依次处理

网络电文传输,按到达的时间先后顺序依次进行

队列的抽象数据类型定义

ADT Queue{数据对象: D={a_i | a_i ∈ ElemSet, i = 1, 2, ..., n, n ≥ 0)数据关系: R={<a_i-1, a_i> | a_i-1, a_i ∈ D, i=2, ..., n)约定其中 a_1 端为队列头, a_n端为队列尾
基本操作:InitQueue(&Q)操作结果: 构造空队列 QDestroyQueue(&Q)条件: 队列 Q 已存在;	操作结果: 队列 Q 被销毁ClearQueue(&Q)条件: 队列 Q 已存在; 操作结果:将 Q 清空QueueLength(Q)条件: 队列 Q 已存在; 操作结果: 返回 Q 的元素个数,即队长GetHead(Q, &e)条件: Q 为非空队列; 操作结果: 用 e 返回 Q 的队头元素EnQueue(&Q, e)条件: 队列 Q 已存在; 操作结果: 插入元素 e 为 Q 的队尾元素DeQueue(&Q,&e)条件: Q 为非空队列, 操作结果: 删除 Q 的队头元素,用 e 返回值...还有将队列置空、遍历队列等操作...
}ADT Queue

队列的物理存储可以用顺序存储结构,也可用链式存储结构。

相应地,队列的存储方式也分为两种,即顺序队列链式队列

队列的顺序存储方式

队列的顺序表示——用一维数组 base[MAXSIZE]

// 最大队列长度
#define MAXQSIZE 100
Typedef struct{// 初始化的动态分配存储空间QElemType* base;// 头指针int front;// 尾指针int rear;
}SqQueue;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/22690.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch 倒排索引原理

看下面这个表格里的文档内容&#xff1a; 如果我这时候想要在这么多文档中查找带有 比亚迪 的我要怎么查&#xff0c;传统这个查询里面我想查这个比亚迪的话。就是先在文档1里面搜索一下有没有 比亚迪&#xff0c;没有&#xff0c;我在到文档2中查找比亚迪&#xff0c;还是没有…

多态的基本使用

这部分的内容主要是记住使用方法&#xff0c;原理在之后会讲。 多态的概念 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同的状态。 比如说买票&#xff0c;普通人买票就是正常买&…

Low-Light Image Enhancement via Self-Reinforced Retinex Projection Model 论文阅读笔记

这是马龙博士2022年在TMM期刊发表的基于改进的retinex方法去做暗图增强&#xff08;非深度学习&#xff09;的一篇论文 文章用一张图展示了其动机&#xff0c;第一行是估计的亮度层&#xff0c;第二列是通常的retinex方法会对估计的亮度层进行RTV约束优化&#xff0c;从而产生…

OPPO手机便签怎么上传录音文件?

相信很多网友对OPPO这个手机品牌并不陌生&#xff0c;因为它凭借时尚轻薄的外观设计、流畅简约的系统、清晰的拍照摄影以及高中低不同的价位选择&#xff0c;赢得了不少年轻消费者的青睐。不过在使用OPPO手机的过程中&#xff0c;也有不少用户表示自己遇到了各种各样的问题&…

接口突然超时10宗罪。。。

前言 不知道你有没有遇到过这样的场景&#xff1a;我们提供的某个API接口&#xff0c;响应时间原本一直都很快&#xff0c;但在某个不经意的时间点&#xff0c;突然出现了接口超时。 也许你会有点懵&#xff0c;到底是为什么呢&#xff1f; 今天跟大家一起聊聊接口突然超时的…

IEEE ICME 2023论文|基于交互式注意力的语音情感识别联合网络

论文题目&#xff1a; A Joint Network Based on Interactive Attention for Speech Emotion Recognition 作者列表&#xff1a; 胡英&#xff0c;侯世静&#xff0c;杨华敏&#xff0c;黄浩&#xff0c;何亮 研究背景 语音情感识别&#xff08;Speech Emotion Recognitio…

Java正则表达式简介及Jar包

Java提供了java.util.regex包&#xff0c;用于与正则表达式进行模式匹配。 Java正则表达式与Perl编程语言非常相似&#xff0c;非常容易学习。 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言&#xff0c;但是在…

【LeetCode热题100】打卡第34天:排序链表乘积最大的子数组

文章目录 【LeetCode热题100】打卡第34天&#xff1a;排序链表&乘积最大的子数组⛅前言 排序链表&#x1f512;题目&#x1f511;题解 乘积最大的子数组&#x1f512;题目&#x1f511;题解 【LeetCode热题100】打卡第34天&#xff1a;排序链表&乘积最大的子数组 ⛅前…

COT、COT-SC、TOT 大预言模型思考方式||底层逻辑:prompt设定

先讲一下具体缩写的意思 COT-chain of thoughts COT-SC (Self-consistency) Tree of thoughts:Deliberate problem solving with LLM 我理解其实不复杂 1. 最简单的是&#xff1a;直接大白话问一次 &#xff08;IO&#xff09; 2. 进阶一点是&#xff1a;思维链&#xff0c;…

DolphinScheduler使用问题记录

1.资源中心 功能板块 出现 storage not startup #问题原因 提示&#xff1a;“storage not startup”&#xff0c;顾名思义&#xff1a;未启用存储 #解决方式 1. 修改两个 common.properties 文件&#xff1a; api-server/conf/common.properties worker-server/conf/common.p…

Azure Kinect DK 在设备管理器找不到此设备

参考 Azure Kinect DK 在设备管理器找不到此设备_Thomas_yx的博客-CSDN博客 type-c------------------type-c 接电脑&#xff0c;数据传输 圆------------------usb 电脑线

【算法基础】搜索与图论

DFS 全排列问题 842. 排列数字 - AcWing题库 #include<bits/stdc.h> using namespace std; const int N10; int n; int path[N]; bool st[N]; void dfs(int x) {if(x>n){for(int i1;i<n;i) cout<<path[i]<<" ";cout<<endl;return ;…