假设以数组Q[M]存放循环队列中的元素,同时设置一个标志tag,以tag==0和tag==1来区分在队头指针(front)和队尾指针(rear)相等时,队列状态是“空”还是“满”。【队列】

2023-05-16

假设以数组Q[M]存放循环队列中的元素,同时设置一个标志tag,以tag==0和tag==1来区分在队头指针(front)和队尾指针(rear)相等时,队列状态是“空”还是“满”。编写与此结构相应的插入(enqueue)和删除(dequeue)算法

完整代码 

#include<iostream>
using namespace std;
//创建循环队列
#define MAXQSIZE 50
typedef struct {
	int* base;
	int front;
	int rear;
}SqQueue;
int tag;
//初始化
int InitQueue(SqQueue& Q)
{
	Q.base = new int[MAXQSIZE];
	if (!Q.base)
		exit(OVERFLOW);
	Q.front = Q.rear = 0;
	tag = 0;
	return 1;
}
//入队
int EnQueue(SqQueue& Q,int e)
{
	if (Q.rear % MAXQSIZE==Q.front &&tag == 1)
		return 0;
	Q.base[Q.rear] = e;
	Q.rear = (Q.rear + 1) % MAXQSIZE;
	if (Q.front == Q.rear)
		tag = 1;
	return 1;
}
//出队
int DeQueue(SqQueue& Q, int &e)
{
	if (Q.rear  % MAXQSIZE==Q.front && tag== 0)
		return 0;
	e = Q.base[Q.front];
	Q.front = (Q.front + 1) % MAXQSIZE;
	if (Q.rear == Q.front)
		tag = 0;
	return 1;
}
int main()
{
	SqQueue Q;
	InitQueue(Q);
	EnQueue(Q, 2);
	EnQueue(Q, 1);
	EnQueue(Q, 3);
	EnQueue(Q, 7);
	EnQueue(Q, 10);
	int n;
	for (int i = 0; i <5; i++)
	{
		DeQueue(Q,n);
		cout << n << " ";
	}
	return 0;

}

 输出结果:

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

假设以数组Q[M]存放循环队列中的元素,同时设置一个标志tag,以tag==0和tag==1来区分在队头指针(front)和队尾指针(rear)相等时,队列状态是“空”还是“满”。【队列】 的相关文章

随机推荐

  • Weather API 天气应用 API调用分享

    Weather API 分享 链接 xff1a https openweathermap org api 注册默认是One Call API 3 0 适合学生项目练手 提供以下天气数据 xff1a 当前天气每小时 分钟预报48小时每小时预报
  • pip安装python包到指定路径

    1 2 我们可以先进入创建好的虚拟环境的site packages 我还没有尝试 xff1a
  • Kubernetes1.26.0部署(Ubuntu/CentOS)

    文章目录 前言准备工作准备5台虚拟机初始化操作Centos配置yum源配置免密 修改hostname 关闭防火墙 selinux 关闭swap分区 方便后面进行其它操作 下载软件包并批量安装配置时间同步配置打开文件描述符添加ipvs模块和内
  • 真正免费的天气API,无需注册申请key

    文章目录 1 中华万年历的天气API 2 讯飞语音识别内置的墨迹天气API 3 乐享天气APP 4 蚂蚁数据天气查询API接口 无聊整理的真正免费的天气API xff0c 无需注册申请key等 xff0c 当然部分数据解析需要自己理解下 x
  • rollup 打包报错

    RollupError Node tried to load your configuration file as CommonJS even though it is likely an ES module To resolve this
  • 视频4K技术的解读

    前几年4K技术就已经有人提及 xff0c 今年更是成了一个非常热门的词汇 xff0c 而且4K技术已经普遍应用于各类终端 xff0c 如电视机 机顶盒 手机等 那么如何来理解4K这个东东呢 xff1f 今天博主就谈谈自己对4K技术的认识 博
  • 字符串—练习题

    目录 案例 xff1a 拼接字符串 案例 xff1a 拼接字符串 案例 xff1a 统计字符串 案例 xff1a 字符串反转 案例 xff1a 字符串反转 案例 xff1a 拼接字符串 需求 xff1a 定义一个方法 xff0c 把int数
  • Anaconda配置环境变量 Windows11

    1 找到Anaconda的安装路径以备配置环境变量使用 2 复制一下路径 C ProgramData Anaconda3 C ProgramData Anaconda3 Scripts C ProgramData Anaconda3 Lib
  • 用rs_lidar雷达跑lio_sam

    1 准备工作 imu绑定串口有线连接雷达并能用rviz显示雷达点云用两个imu标定包标定imu在完成第二步必要的工作后 xff0c 配置LIO SAM config 下的params yaml参数 xff0c 更改之前建议备份在旁边复制粘贴
  • 如何从gitee上下载项目并运行

    前端界面 找到所要下载的项目 xff0c 点击克隆 下载 xff0c 并下载zip压缩包后解压 xff08 方法很多看个人习惯 xff0c 我觉得这样比较快 xff09 打开WebStrom xff0c 并找到刚刚下载的项目 xff0c 点
  • Springboot整合Mybatis-Plus

    1 概述 MyBatis Plus opens new window xff08 简称 MP xff09 是一个 MyBatis opens new window 的增强工具 xff0c 在 MyBatis 的基础上只做增强不做改变 xff
  • 初识C语言——第一个C语言程序(保姆级教程)

    1 创建一个项目 1 1 首先 xff0c 下载好适合的编译器 xff0c 此处用的是VS2017 此处点击空项目 此处有几个细节需要我们注意一下 xff1a 1 此处选择C 43 43 xff0c 空项目 xff0c C 43 43 对C
  • Ubuntu双系统扩大/home磁盘空间大小,gparted移动磁盘位置及大小

    前言 xff1a 笔者之前试过挂载磁盘的方法 xff0c 后开觉得不方便 xff0c 于是决定用U盘启动盘来扩大空间 xff0c 花了几个小时终于搞清楚了整个流程 xff0c 其中在gparted移动磁盘位置的地方卡了很长时间 xff0c
  • gitee码云仓库创建教程

    git码云 目录 1 注册账户 2 申请生成公钥 3 生成公钥 3 创建git仓库 4 remote Access denied 拒绝访问 fatal unable to access https gitee cohe requested
  • 如何使用Python的第三方库you-get下载视频

    安装步骤 1 Win 43 R打开cmd 2 输入指令下载第三方库you get xff0c 该第三方库可以用于下载视频 pip install you get 3 等到它显示 Successfully installed you get
  • 递归函数-求N阶乘

    递归函数 xff0c 就是指自己调用自己的函数 运用大事化小的思维 xff0c 将繁杂的流程简单化 想对比于循环思维 xff0c 递归函数显然让代码的利用率更高了 xff0c 因为0的阶乘是0 xff0c 所以这应该单独进行判断 xff0c
  • CDN如何添加加速域名和绑定CNAME

    摘要 xff1a 本文将手把手教你开通CDN服务 添加加速域名和绑定CNAME 步骤 1 xff1a 开通CDN服务 在阿里云官网CDN产品详情页快速了解产品 xff0c 之后单击 立即开通 在订购页面选择适合计费方式 xff0c 确认订单
  • 将两个递增的有序链表合并为一个递增的有序链表.【数据结构】【线性表】

    编写一个函数完成如下功能 xff1a 将两个递增的有序链表合并为一个递增的有序链表 要求结果链表仍使用原来的链表空间 xff0c 不另外占用其他的存储空间 表中不允许有重复的数据 要求 xff0c 在主函数中调用上面的函数测试 提示 xff
  • 将一个带头结点的单链表分解为两个具有相同构造的链表B和C

    编写一个函数完成如下功能 xff1a 将一个带头结点的单链表分解为两个具有相同构造的链表B和C xff0c 其中B表的节点为A表中值小于0的节点 xff0c 而C表的节点为A表中值大于0的节点 xff08 链表A中的元素为非零整数 xff0
  • 假设以数组Q[M]存放循环队列中的元素,同时设置一个标志tag,以tag==0和tag==1来区分在队头指针(front)和队尾指针(rear)相等时,队列状态是“空”还是“满”。【队列】

    假设以数组Q M 存放循环队列中的元素 xff0c 同时设置一个标志tag xff0c 以tag 61 61 0和tag 61 61 1来区分在队头指针 xff08 front xff09 和队尾指针 xff08 rear xff09 相等