青岛大学_王卓老师【数据结构与算法】Week05_13_队列的顺序表示和实现1_学习笔记

news2024/10/4 2:31:15

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

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

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

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

课程视频链接:

数据结构与算法基础–第05周13–3.5队列的表示和实现2–3.5.2队列的顺序表示和实现1

📚 【Week05】13_队列的顺序表示和实现1

队列

在这里插入图片描述

顺序队列空栈、入队和出队示意图

在这里插入图片描述

❓ 思考:存在什么问题??

设数组大小为 MAXQSIZE,rear = MAXQSIZE 时,发生溢出。

在这里插入图片描述

解决假上溢的方法

(1) 将队中元素依次向队头方向移动。

缺点:浪费时间。每移动一次,队中元素都要移动。

(2) 将队空间设想成一个循环的表,即分配给队列的 m 个存储单元可以循环使用。

在这里插入图片描述

当 rear 为 maxqsize 时,若向量的开始端空着,又可从头使用空着的空间。

当 front 为 maxqsize 时,也是一样。

就好像下标为 0 的位置是接在下标为 5 的位置后面。

😊 解决假上溢的方法——引入循环队列

base[0] 接在 base[MAXQSIZE - 1] 之后,若 rear + 1 == M,则令 rear = 0;

实现方法:

利用 模运算(mod,C语言中:%)

插入元素:

Q.base[Q.rear] = x;
Q.rear = (Q.rear + 1) % MAXQSIZE;

删除元素:

x = Q.base[s.front];
Q.front = (Q.front + 1) % MAXQSIZE;

循环队列:循环使用为队列分配的存储空间。
在这里插入图片描述

循环队列入队和出队
在这里插入图片描述

❓ 思考:循环队列时会出现队空:front == rear,队满:front == rear,如何判断队空和队满?

解决方案:

(1) 另外设一个标志以区别队空和队满

(2) 另设一个变量,记录元素个数

(3) 少用一个元素空间

循环队列解决队满时判断方法——少用一个元素空间

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DeepSpeed系列篇1:零门槛上手DeepSpeed实战(服务器部署及训练过程详解SFT)

1、建立虚拟环境 conda create -n dsnew python3.10 2、安装pytorch conda install pytorch torchvision torchaudio pytorch-cuda11.7 -c pytorch -c nvidia 3、安装deepspeed pip install deepspeed 4、下载DeepSpeedExamples并安装依赖 https://github.com/microsof…

一文了解DDD分层架构演进

1.3 分层架构演进 1.3.1 传统四层架构 将领域模型和业务逻辑分离出来,并减少对基础设施、用户界面甚至应用层逻辑的依赖,因为它们不属业务逻辑。将一个夏杂的系统分为不同的层,每层都应该具有良好的内聚性,并且只依赖于比其自身更…

arduinoIDE2.1.1最新版升级开发板(esp32-2.0.3升级2.0.10)方法总结(esp8266升级通用)

一、arduinoIDE 升级最新版 2.1.1方法 1.1.通过IDE2.x直接升级(推荐,速度还可以) 1.2.官网下载安装包覆盖升级(地址https://www.arduino.cc/en/software) 1.3 ESP8266升级方法雷同可参考(原理一样,最新好像是3.1.2) https://github.com/esp8266/Arduino/releases http…

C++入门知识点

目录 命名空间 命名空间定义 命名空间使用 法一:加命名空间名称及作用域限定符:: 法二:使用using部分展开(授权)某个命名空间中的成员 法三:使用using对整个命名空间全部展开(授权…

Windows修改mysql服务的root密码

目录 步骤1、停止mysql服务2、使用命令行启动mysql服务,跳过密码验证3、密码置空4、关闭命令行启动的mysql服务并正常启动5、修改root密码 参考 步骤 1、停止mysql服务 以管理员身份打开终端,输入指令net stop mysql停止MySQL服务,停止服务…

PBOOTCMS登录请求发生错误,您可按照如下方式排查: 1、试着删除根目录下runtime目录,刷新页面重试;2、检查系统会话文件存储目录是否具有写入权限;

PBOOTCMS后台登录请求发生错误,您可按照如下方式排查: 1、试着删除根目录下runtime目录,刷新页面重试;2、检查系统会话文件存储目录是否具有写入权限; 以上提示其实就是,表单提交校验失败,请刷新后重试的提…

U盘文件修复怎么做?简单3步,快速修复u盘文件!

“很离谱!由于有些文件存在错误,我想将这些错误文件修复,但在操作过程中,不知为什么所有的数据都被删除了。U盘文件修复应该怎么做呀?是不是我的操作方法有误呢?” U盘使用时间长了之后,很可能会…

【分布鲁棒、状态估计】分布式鲁棒优化电力系统状态估计研究[几种算法进行比较](Matlab代码实现)

💥1 概述 文献来源: 摘要: 能源市场的自由化、可再生能源的渗透、先进的计量能力以及对情境感知的需求,都要求进行系统范围的电力系统状态估计(PSSE)。然而,由于互联的复杂性、实时监测中的通信…

MySQL八股学习记录6-日志from小林coding

MySQL八股学习记录6-日志from小林coding MySQL日志分类undo logBuffer Poolredo logbinlogredo log 和undo log有什么区别主从复制是如何实现update语句执行过程为什么需要两阶段提交 MySQL日志分类 undo log:InnoDB存储引擎层生成的日志,实现事务中的原子性,主要用于事务回滚…

学习记录——SpectFormer、DilateFormer、ShadowFormer、MISSFormer

SpectFormer: Frequency and Attention is what you need in a Vision Transformer, arXiv2023 频域混合注意力SpectFormer 2023 论文:https://arxiv.org/abs/2304.06446 代码:https://badripatro.github.io/SpectFormers/ 摘要视觉变压器已经成功地应用…

No.2(4)——双指针解决柱子间最大面积

已知现在有几根柱子成有序排列,求出两根柱子之间围成面积的最大值。 不难想到,只需要将每两个柱子之间的面积计算一次并找出最大值,即可找到答案,但采用双指针法可以有效降低重复计算:从数组的两侧开始移动左右两个指针…

Elasticsearch SQL 详解

Elasticsearch SQL 是一个 X-Pack 组件,允许用户使用类似 SQL 的语法在 ES 中进行查询。用户可以在 REST、JDBC、命令行中使用 SQL 在 ES 执行数据检索和数据聚合操作。ES SQL 有以下几个特点: 本地集成,SQL 模块是 ES 自己构建的&#xff0…

数据库| 中国研究数据服务平台

数据哪里查,查不到,怎么办? 今天分享一个数据库|中国研究数据服务平台(CNRDS) 中国研究数据服务平台(Chinese Research Data Services,简称CNRDS),是上海经禾信息技术有…

HCIA|详解Telnet协议

一、前言 今天翻到了之前写的Telnet协议的实验,由于该篇文章创作于开始写作的初期,文章结构简单、布局潦草,但实验内容是完整的,因此本篇文章将对Telnet技术进行详解,希望能够对大家提供帮助。在本文中,将从…

ECharts is not Loaded -- echarts里china.json与china.js有何区别

echarts官方提示他们的地图json测绘不符合中国官方标准不提供下载 如下图 china.json china.js 可以很明显的看出地图山东与辽宁部分堆到一起的情况, 接下来换成china.js vue项目,要引入china.js,直接import引入会报错:ECharts is not Loa…

【SCI征稿】IEEE旗下中科院1区(TOP),有关计算机的广泛领域研究

期刊简介: 出版社:IEEE 影响因子:IF(2022)10.5-11.0 期刊分区:JCR1区,中科院1区(TOP) 检索情况:SCIE&EI 双检 自引率:13.20% 国人占比&…

在Illustrator中创建 3D 冰淇淋模型对象

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 一旦你学会了如何在Illustrator中制作一个对象3D,你可以前往Envato Elements,在那里你可以找到大量的3D设计来激发你的灵感。这个基于订阅的市场拥有超过 2,000 个 Illus…

国外广告联盟和国内广告联盟的优劣势是什么

国外广告联盟和国内广告联盟在一些方面存在一些差异和优劣势。以下是对比它们的一些常见优劣势: 一、国外广告联盟优势: 1、国际资源:国外广告联盟拥有更广泛的国际媒体资源,能够帮助广告主拓展全球市场,进一步提高国…

Arduino安装ESP32下载失败的解决方法

Arduino安装ESP32时,经常下载失败 解决办法: 1.复制命令行中的提示信息到记事本,找到下载地址 2.打开浏览器,在地址栏中贴粘下载地址,回车开始下载 3.将下载的包复制到C:\Users\Administrator\AppData\Local\Arduino…

Spring Boot进阶(54):Windows 平台安装 MongoDB数据库 | 超级详细,建议收藏

1. 前言🔥 Windows如何安装MongoDB数据库及使用呢?这将又会是干货满满的一期,全程无尿点不废话只抓重点教,具有非常好的学习效果,拿好小板凳准备就坐!希望学习的过程中大家认真听好好学,学习的途…