数据结构(顺序队列 循环队列

server/2024/12/23 5:32:19/

目录

  • 1. 讲解:
  • 2. C++代码实现:
  • 小结:

1. 讲解:

在这里插入图片描述

2. C++代码实现:

#include <stdlib.h>
#include <iostream>using namespace std;#define MaxSize 10
#define ElemType inttypedef struct {ElemType data[MaxSize];int front, rear;
}SqQueue;// 初始化队列
void InitQueue(SqQueue& Q) {Q.front = Q.rear = 0;
}// 判断队列是否为空
bool QueueEmpty(SqQueue Q) {if (Q.front == Q.rear) return true;else return false;
}// 入队
bool EnQueue(SqQueue& Q, ElemType e) {if ((Q.rear + 1) % MaxSize == Q.front) return false;	// 队满Q.data[Q.rear] = e;Q.rear = (Q.rear + 1) % MaxSize;return true;
}// 出队
bool DeQueue(SqQueue& Q, ElemType& e) {if (QueueEmpty(Q)) return false;	// 队空e = Q.data[Q.front];Q.front = (Q.front + 1) % MaxSize;return true;
}// 查询队头元素
bool GetHead(SqQueue Q, ElemType& e) {if (QueueEmpty(Q)) return false;	// 队空e = Q.data[Q.front];return true;
}// 队列中元素个数
int Length(SqQueue Q) {return (Q.rear + MaxSize - Q.front) % MaxSize;
}int main() {SqQueue myQueue;InitQueue(myQueue); // 初始化队列// 入队操作for (int i = 1; i <= 5; i++) {EnQueue(myQueue, i);}// 获取队头元素ElemType headElement;GetHead(myQueue, headElement);cout << "队头元素为:" << headElement << endl;// 出队操作ElemType dequeuedElement;DeQueue(myQueue, dequeuedElement);cout << "出队元素为:" << dequeuedElement << endl;// 输出队列中的元素个数cout << "队列中的元素个数为:" << Length(myQueue) << endl;// 判断队列是否为空if (QueueEmpty(myQueue)) {cout << "队列为空" << endl;}else {cout << "队列不为空" << endl;}return 0;
}

小结:

关注我给大家分享更多有趣的知识,以下是个人公众号,提供 ||代码兼职|| ||代码问题求解||
添加我的公众号即可:


http://www.ppmy.cn/server/3613.html

相关文章

如何在响应头中防治xss

在HTTP响应头中设置一些特定的安全策略可以帮助防止XSS&#xff08;跨站脚本&#xff09;攻击。以下是一些常用的HTTP响应头和它们的作用&#xff1a; Content-Security-Policy&#xff1a;这个响应头可以限制浏览器只加载和执行来自特定来源的脚本。例如&#xff0c;你可以设置…

考研党们,搭子们,打打鸡血!刷视频免疫了,时间竟然多了起来!——早读(逆天打工人爬取热门微信文章解读)

断舍离&#xff0c;断的是过去 引言Python 代码第一篇 人民日报 一个班级&#xff0c;29人全部“上岸”&#xff01; 第二篇 人民日报 来了&#xff01;新闻早班车要闻社会政策 结尾 时间就像河流 它带来一切 也带走一切 不打游戏不刷视频 时间的河流便能带来更丰富的体验 引言…

【设计模式】5、proxy 代理模式

五、proxy 代理模式 proxy 模式 https://refactoringguru.cn/design-patterns/proxy 如果 client 需要操作一个 rawObject, 但希望 proxy 它时, 则可使用 proxy 模式. 可抽象 proxy interface, 使 rawObject 和 proxyObject 都实现该 proxy interface. 有如下场景: 延迟初…

IDM的实用功能

IDM&#xff08;Internet Download Manager&#xff09;是一款用于加速下载的软件&#xff0c;具有许多实用功能&#xff0c;包括&#xff1a; 多线程下载&#xff1a;IDM支持多线程下载&#xff0c;可以同时下载多个文件&#xff0c;提高下载速度。 分段下载&#xff1a;IDM将…

论文阅读:BEVBert: Multimodal Map Pre-training for Language-guided Navigation

BEVBert&#xff1a;语言引导导航的多模态地图预训练 摘要 现存的问题&#xff1a;目前大多数现有的预训练方法都采用离散的全景图来学习视觉-文本关联。这要求模型隐式关联全景图中不完整、重复的观察结果&#xff0c;这可能会损害智能体的空间理解。 本文解决方案&#xf…

gitlab 16.2.4 恢复

新创建新gitlab&#xff0c;版本需和备份的gitlab版本一致 docker run -d -p 322:22 -p 822:80 --name gitlab_1 gitlab/gitlab-ce:16.2.4-ce.0 进入容器内部 docker exec -it c51685817e27 /bin/bash 新的环境至少运行过一次&#xff0c;sudo gitlab-ctl reconfigu…

STM32-ADC(独立模式、双重模式)

ADC简介 18个通道&#xff1a;外部信号源就是16个GPIO回。在引脚上直接接模拟信号就行了&#xff0c;不需要侄何额外的电路。引脚就直接能测电压。2个内部信号源是内部温度传感器和内部参考电压。 逐次逼近型ADC: 它是一个独立的8位逐次逼近型ADC芯片&#xff0c;这个ADC0809是…

Oracle数据库从入门到精通系列之二十:Linux上使用容器数据库(CDB)方式部署Oracle数据库19c详细步骤

@TOC 一、Oracle 数据库部署类型 Oracle数据库支持以下部署类型: 容器数据库(CDB) 可以包含多个可插入数据库 (PDB) 的数据库。数据库客户端连接到每个 PDB,就好像它是标准的非 CDB 数据库一样。非容器数据库(非CDB) 标准Oracle数据库,不支持创建可插拔数据库。二、安…