用C++实现队列顺序结构的基本操作

//队列顺序结构的基本操作:
#include"stdio.h"
#include"String"
#define QueueSize 100
typedef char ElemType;
typedef struct  
{	
	ElemType data[QueueSize];	/*保存队中元素*/
	int front,rear;				/*队头和队尾指针*/
} SqQueue;
void InitQueue(SqQueue &qu)		 
{
	qu.rear=qu.front=-1;           /*指针初始化*/
} 
int EnQueue(SqQueue &qu,ElemType x)	 
{
	if ((qu.rear+1)%QueueSize==qu.front) /*队满*/
	{
		return 0;
	}
	qu.rear=(qu.rear+1)%QueueSize; /*队尾指针进1*/
	qu.data[qu.rear]=x;
	return 1;
}
int DeQueue(SqQueue &qu,ElemType &x)	/*出队运算*/
{
	if (qu.rear==qu.front)
		return 0;
	qu.front=(qu.front+1)%QueueSize;    /*队头指针进1*/
	x=qu.data[qu.front];
	return 1;
}
int GetHead(SqQueue qu,ElemType &x)		/*取队头元素运算*/
{
	if (qu.rear==qu.front)		/*队空*/
		return 0;
	x=qu.data[(qu.front+1)%QueueSize];
	return 1;
}
int QueueEmpty(SqQueue qu)		/*判断队空运算*/
{
	if (qu.rear==qu.front)		/*队空*/
		return 1;
	else
		return 0;
}
int main()
{	SqQueue qu;
	ElemType e;
	InitQueue(qu);
	printf("队%s\n",(QueueEmpty(qu)==1?"空":"不空"));
	printf("a进队\n");EnQueue(qu,'a');
	printf("b进队\n");EnQueue(qu,'b');
	printf("c进队\n");EnQueue(qu,'c');
	printf("d进队\n");EnQueue(qu,'d');
	printf("队%s\n",(QueueEmpty(qu)==1?"空":"不空"));
	GetHead(qu,e);
	printf("队头元素:%c\n",e);
	printf("出队次序:");
	while (!QueueEmpty(qu))
	{   DeQueue(qu,e);
		printf("%c ",e);
	}
	printf("\n");
	return 0;
}

运行结果:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CETN01 - How to Use Cloud Classroom

文章目录 I. Introduction to Cloud ClassroomII. How to Use Cloud Classroom1. Publish Resources2. Conduct Activities3. Class Teaching Reports4. View Experience Values5. Performance in Cloud Classroom I. 云课堂介绍II. 如何使用云课堂1. 发布资源2. 进行活动3. 班…

yolov8使用详解

文章目录 一. 安装yolov81. 通过Pip安装2. 通过Conda安装3. Git克隆源码安装 二. yolov8基本设置三. yolov8模型1. 目标检测2. 实例分割3. 图像分类4. 姿态估计5. 多对象跟踪(1) 可用的追踪器(2) 选择追踪器(3) 持续追踪循环(4) 随时间绘制追踪路径 四. yolov8数据集[1. 检测数…

高效的多维空间点索引算法——GeoHash

一、Geohash 算法简介 GeoHash是空间索引的一种方式,其基本原理是将地球理解为一个二维平面,通过把二维的空间经纬度数据编码为一个字符串,可以把平面递归分解成更小的子块,每个子块在一定经纬度范围内拥有相同的编码。以GeoHash方…

书籍推荐: 深入理解Go并发编程

一书在手,并发无忧 收到了鸟窝老师历时五载写就的新作「深入理解Go并发编程」 迫不及待开卷阅览,大呼过瘾,最大感触是诚如副标题所言,“从原理到实践,看这本就够了”。 对并发编程优雅简洁的支持,是Go最大的…

从简单到入门,一文掌握jvm底层知识文集。

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

关于我自己搭建了一个完整的 网站 - 从零开始(服务器购买选型,域名备案,wordpress 主题,各种支付插件)

这篇博客主要介绍是如何在华为云上搭建一个 WordPress 网站。我将详细介绍从购买服务器到推广网站的整个过程,包括域名主机的备案。无论您是技术新手还是有一定经验的开发者,这篇文章都能为您提供有价值的指导。 第一步:选择云服务器 我选择…

CART算法Python实现

本文深入探讨了CART(分类与回归树)算法的核心原理、实现方法以及应用场景。文章首先介绍了决策树的基础知识,然后详细解析了CART算法的工作机制,包括特征选择和树的构建。接着,通过Python和PyTorch的实例代码展示了CAR…

期末速成数据库极简版【存储过程】(5)

目录 【7】系统存储过程 【8】用户存储过程——带输出参数的存储过程 创建存储过程 存储过程调用 【9】用户存储过程——不带输出参数的存储过程 【7】系统存储过程 系统存储我们就不做过程讲解用户存储过程会考察一道大题,所以我们把重点放在用户存储过程。…

老年女性认知功能低于男性 |CHARLS CLHLS CFPS公共数据库周报(11.29)

欢迎参加郑老师2023年孟德尔随机化课程即将开始 发表文章后退款!郑老师科研统计课程详情 CHARLS公共数据库 CHARLS数据库简介中国健康与养老追踪调查(China Health and Retirement LongitudinalStudy,CHARLS)是一项持续的纵向调查,旨在调查中…

Java设计模式-工厂模式

目录 一、简单工厂模式 (一)需求 (二)使用传统的方法来完成 (三)传统方法的优缺点 (四)基本介绍 (五)使用简单工厂模式 二、工厂方法模式 &#xff0…

基于 ESP32-S3 的 Walter 开发板

Walter 是一款基于 ESP32-S3 且拥有 5G LTE 连接功能的新型开源开发套件。 近日,比利时公司 DPTechnics BV 推出了一款基于乐鑫 ESP32-S3 且拥有 5G LTE 连接功能的新型开源开发套件。该套件即将在 Crowd Supply 平台上发布,您可以点击此处了解详情。 无…

vm虚拟机固定IP

最近使用vm虚拟机 ,可用了一段时间ip就自动变化,于是去网上看了不少教程,但很多都没用。 1.编辑配置 vim /etc/sysconfig/network-scripts/ifcfg-ens33 修改BOOTPROTO为static加入属性IPADDR,设置你想要设置的ip配置GATEWAY与DNS1 不配置GA…

《每天一个Linux命令》 -- (5)通过sshkey密钥登录服务器

欢迎阅读《每天一个Linux命令》系列!在本篇文章中,将介绍通过密钥生成,使用公钥连接管理服务器。 概念 SSH 密钥是用于安全地访问远程服务器的一种方法。SSH 密钥由一对密钥组成:公钥和私钥。公钥存储在远程服务器上,…

Vue 2.0源码分析-update

Vue 的 _update 是实例的一个私有方法,它被调用的时机有 2 个,一个是首次渲染,一个是数据更新的时候;由于我们这一章节只分析首次渲染部分,数据更新部分会在之后分析响应式原理的时候涉及。_update 方法的作用是把 VNo…

23种策略模式之策略模式

文章目录 前言优缺点使用场景角色定义UML模拟示例小结 前言 在软件开发中,设计模式是为了解决常见问题而提供的一套可重用的解决方案。策略模式(Strategy Pattern)是其中一种常见的设计模式,它属于行为型模式。该模式的核心思想是…

【数据库】数据库多种锁模式,共享锁、排它锁,更新锁,增量锁,死锁消除与性能优化

多种锁模式的封锁系统 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会…

RedisTemplate操作哈希数据

RedisTemplate操作哈希数据 概述常用方法添加哈希数据添加hashMap值判断hashkey 获取哈希数据获取属性值获取hashMap值。获取键值对。获取map键是否有值判断是否有map键。获取键。获取长度。集合方式获取值。匹配获取键值对 自增以double值大小自增。以long值大小自增。 修改删…

流程画布开发技术方案归档(G6)

🎨 在理想的最美好世界中,一切都是为最美好的目的而设。 —— 伏尔泰 如果可以实现记得点赞分享,谢谢老铁~ 一、技术选型 •从可维护性和可拓展性出发 •基本满足 1:链接: https://github.com/hukaibaihu/vue-org…

伦茨科技宣布ST17H6x芯片已通过Apple Find My「查找」认证

深圳市伦茨科技有限公司(以下简称“伦茨科技”)发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家,该平台提供可通过Apple Find My认证的Apple查找(Find My)功能集成解决方案。…

MPEG4Extractor

1、readMetaData 必须要找到 Moov box,找到 Mdat box或者 Moof box,并且创建了 ItemTable 大端 box 分为 box header 和 box content: box header由8个字节组成,前面四个字节表示这个box 的大小(包含这个头的8字节&a…