当前位置:网站首页>队列的存储和循环队列
队列的存储和循环队列
2022-04-23 03:07:00 【夜深人静码代码】
一、队列的存储结构
1、队列的物理存储可以用顺序存储结构,也可用链式存储结构。相应队列的存储方式也分为两种,即顺序队列和链式队列。
2、顺序队列可以用一维数组表示如下:
#define MAXQSIZE 100 //最大队列长度
Typedef struct {
QElemType *base; //初始化的动态分配存储空间
int front; //头指针
int rear; //尾指针
}SqQueue;
二、循环队列的基本操作语句
1、队列的初始:front=rear=0;
2、元素入队:base[rear]=x; rear++;
3、元素出队:x=base[front];front++;
4、空队标志:front==rear;
5、队满标志:为了防止队满标志和队空标志一样,则会少用一个元素空间,即队列空间大小为m时,有m-1个元素就认为是队满。这样判断队空的条件不变,即当头、尾指针的值相同时,则认为队空;而当尾指针在循环意义上加1后是等于头指针,则认为队满。因此,在循环队列中队满的条件是:(rear+1)%MAXQSIZE==front。
三、顺序队列的假上溢
1、定义:系统作为队列用的数组存储区还没有满,但队列却发生了溢出,我们把这种现象称为"假溢出"。
2、原因:由于元素入队时头指针前移和元素出队时尾指针也是前移,当头指针超出向量空间,这时整个向量空间及队列并没有满却产生了"上溢"现象。
3、解决方法:将队空间设想成一个循环的表,即分配给队列的m个存储单元可以循环使用,当rear为maxqsize时, 若向量的开始端空着,又可从头使用空着的空间。当front为maxqsize时 ,也是一样。
四、循环对列
1、循环队列的存储方式:base[0]接在base[MAXQSIZE -1]之后,若rear+1==M, 则令rear=0;
2、循环队列插入元素和删除
①插入元素: Q.base[Q.rear]=x;
Q.rear= (Q.rear+ 1)% MAXQSIZE;
②删除元素: x= Q.base[s.front]
Q.front=(Q.front+ 1)% MAXQSIZE
版权声明
本文为[夜深人静码代码]所创,转载请带上原文链接,感谢
https://blog.csdn.net/kxbdys/article/details/123943905
边栏推荐
- Binary tree
- 微软是如何解决 PC 端程序多开问题的——内部实现
- 数据挖掘系列(3)_Excel的数据挖掘插件_估计分析
- Impact of AOT and single file release on program performance
- Response processing of openfeign
- 由于3²+4²=5²,所以称‘3,4,5‘为勾股数,求n(包括n)以内所有勾股数数组。
- 利用栈的回溯来解决“文件的最长绝对路径”问题
- TP5 customization in extend directory succeeded and failed. Return information
- OLED multi-level menu record
- Distributed system services
猜你喜欢

最通俗易懂的依赖注入与控制反转

TP5 customization in extend directory succeeded and failed. Return information

Depth deterministic strategy gradient (ddpg)

Blazor University (11)组件 — 替换子组件的属性

ASP. Net 6 middleware series - execution sequence

ASP.NET 6 中间件系列 - 执行顺序

Impact of AOT and single file release on program performance

宁德时代地位不保?

Array and collection types passed by openfeign parameters

2022T电梯修理考试模拟100题及在线模拟考试
随机推荐
Xamarin效果第二十二篇之录音效果
Realize QQ login with PHP
求二叉树的叶子结点个数
. net tip: talk about the problem that the scoped service cannot be obtained in the middleware structure
Summary of software test interview questions
Distributed system services
Dynamic sequence table + OJ
ASP.NET 6 中间件系列 - 条件中间件
全网讲的最细,软件测试度量,怎样优化软件测试成本提高效率---火爆
由于3²+4²=5²,所以称‘3,4,5‘为勾股数,求n(包括n)以内所有勾股数数组。
如果通过 C# 实现对象的深复制 ?
Load view Caton
HLS / chisel practice CORDIC high performance computing complex square root
Onenet connection process
TP5 customization in extend directory succeeded and failed. Return information
最通俗易懂的依赖注入与控制反转
ASP.NET和ASP.NETCore多环境配置对比
Xamarin effect Chapter 21 expandable floating operation button in GIS
Recursion - outputs continuously increasing numbers
宁德时代地位不保?