数据结构日记之《队列的定义》

队列的定义

  • 一、队列的定义和特点
  • 二、队列的抽象数据类型定义
  • 三、例子

一、队列的定义和特点

队列 (queue) 是一种 先进先出(First In First Out, FIFO) 的线性表。它只允许在表的一端进行插入,而在另一端删除元素。这和日常生活中的排队是一致的,最早进入队列的元素最早离开。

在队列中,允许插入的一端称为队尾(rear), 允许 删除的一端则称为队头(front)。

假设队列为quene = (a1, a2, …,an), 那么, a1 就是队头元素, an 则是队尾元素。队列中的元素是按照 a1,a2,…,an的顺序进入的,退出队列也只能按照这个次序依次退出, 出队列 入队列 就是说,只有在 a1,a2, …,a~n -I~都离开队列之后, an 才能退出队列。

在这里插入图片描述

二、队列的抽象数据类型定义

这个Q其实就是 一种数据类型哈,下面就是这个数据结构具有的一些功能:

函数初始条件功能
InitQueue (&Q)- -构造一个空队列Q。
Des t royQueue (&Q)队列Q已存在。队列Q被销毁, 不再存在。
ClearQueue (&Q)队列Q巳存在。将Q清为空队列。
QueueEmpty (Q)队列Q已存在。若Q为空队列,则返回true, 否则返回false。
QueueLength(Q)队列Q已存在。返回Q的元素个数,即队列的长度。
GetHead(Q}Q为非空队列。返回Q的队头元素。
EnQueue (&Q, e}队列Q已存在。插入元素e为Q的新的队尾元素。
DeQueue(&Q, &e)Q为非空队列。删除Q的队头元素,并用e 返回其值。
QueueTr aver se(Q)Q巳存在且非空。从队头到队尾,依次对Q的每个数据元素访问

三、例子

就比如在发送数据的时候,我们数据量很大,一次性是发不完的,因为出口数据量是有限制的,那我们只能把数据放在一个队列里,按照时间顺序排队发送,这种情况下,可能还具有优先级,队列里总是满的,也可以当做一个缓冲区去发,就像港口出货一样,按照时间排着队出货。

在这里插入图片描述

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

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

相关文章

uniapp+vue3项目中使用vant-weapp

创建项目 通过vue-cli命令行创建项目 Vue3/Vite版要求 node 版本^14.18.0 || >16.0.0 uni-app官网 (dcloud.net.cn) npx degit dcloudio/uni-preset-vue#vite my-vue3-project打开项目 点击顶部菜单栏终端/新建终端 执行安装依赖指令 yarn install 或 npm install 安装vant…

【uniapp】使用Vs Code开发uniapp:

文章目录 一、使用命令行创建uniapp项目:二、安装插件与配置:三、编译和运行:四、修改pinia: 一、使用命令行创建uniapp项目: 二、安装插件与配置: 三、编译和运行: 该项目下的dist》dev》mp-weixin文件导入微信开发者…

Redisson可重入锁原理

微信公众号访问地址:Redisson可重入锁原理 推荐文章: 1、使用原生Redis命令实现分布式锁 ​ 2、为什么引入Redisson分布式锁? 3、SpringBoot整合多数据源,并支持动态新增与切换(详细教程) 4、SpringBo…

3D Web轻量化引擎HOOPS Communicator如何实现对BIM桌面端的支持?

HOOPS Communicator是一款简单而强大的工业级高性能3D Web轻量化渲染开发包,其主要应用于Web领域,主要加载其专有的SCS、SC、SCZ格式文件;HOOPS还拥有另一个桌面端开发包HOOPS Visualize,主要加载HSF、HMF轻量化格式文件。两者虽然…

【QPSK信号生成】生成正交相移键控信号研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Kubernetes集群部署(第二篇)

安装flannel Master 节点NotReady 的原因就是因为没有使用任何的网络插件,此时Node 和Master的连接还不正常。目前最流行的Kubernetes 网络插件有Flannel、Calico、Canal、Weave 这里选择使用flannel。 flannel提取链接:https://pan.baidu.com/s/1fLJKh…

EXPLAIN使用分析

系列文章目录 文章目录 系列文章目录一、type说明二、MySQL中使用Show Profile1.查看当前profiling配置2.在会话级别修改profiling配置3.查看profile记录4.要深入查看某条查询执行时间的分布 一、type说明 我们只需要注意一个最重要的type 的信息很明显的提现是否用到索引&…

云原生之深入解析Redis的原理分析与环境部署

一、Redis 简介 ① 什么是 Redis ? REmote DIctionary Server(Redis)是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可…

在java中如何使用openOffice进行格式转换,word,excel,ppt,pdf互相转换

1.首先需要下载并安装openOffice,下载地址为: Apache OpenOffice download | SourceForge.net 2.安装后,可以测试下是否可用; 3.build.gradle中引入依赖: implementation group: com.artofsolving, name: jodconverter, version:…

mac ssh连接另一台window虚拟机vm

vmware配置端口映射 编辑(E) > 虚拟网络编辑器(N)... > NAT设置(S)... window防火墙,入站规则添加5555端口 控制面板 > 系统和安全 > Windows 防火墙>高级设置>入站规则>新建规则... tips windows查看端口命令:netstat -ano | f…

腾讯云服务器CPU标准型S5/S6/SA3/SR1/SA2处理器大全

腾讯云服务器CVM标准型CPU处理器大全,包括标准型S6、SA3、SR1、S5、S5se、SA2、S4、SN3ne、S3、SA1、S2ne实例CPU处理器型号大全,标准型S6云服务器CPU采用Intel Ice Lake(2.7GHz/3.3GHz),标准型S5采用Intel Xeon Cascade Lake 8255C/Intel Xe…

Python爬虫 爬取图片

在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。 我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没…