在一个循环链队中只有尾指针(记为rear,结点结构为数据域data,指针域next),请给出这种队列的入队和出队操作实现过程

news2024/11/30 6:56:44

在一个循环链队中只有尾指针(记为rear,结点结构为数据域data,指针域next),请给出这种队列的入队和出队操作实现过程

入队过程如下图:
先创一个结点,用于存储要插入的结点数据
然后就是老套路了:先连后断
在这里插入图片描述

void EnQueue(LinkQueue* Q,int x){
	QueuePtr s=(QueuePtr)malloc(sizeof(QNode));
	//malloc申请一个QNode结点大小的空间,然后用指针s指向它
	s->data=x;//把x值赋到结点里面
	if(Q->rear==NULL){//队列为空,新加入的s结点成为唯一结点
		Q->rear=s;
		Q->rear->rear=Q->rear;//唯一一个结点就自己指向自己形成一个环
	}
	else{
		s->next=Q->rear->next;//先连:s的next指向rear的next(也就是头结点)
		Q->rear->next=s;//后断,当前rear的next指向s
		Q->rear=s;//s成为新的rear
	}

}

出队过程如下图:

在这里插入图片描述

void DeQueue(LinkQueue* Q){
	QueuePtr p;
	if(Q->rear==NULL){//空队列,没办法出队
		printf("队列为空,无法出队");
		return;
	}
	if(Q->rear->next==Q->rear){//队列中只有一个元素
		p=Q->rear;//用p记录rear位置,再free掉
		free(p);
		Q->rear=NULL;//最后rear置空
	}
	else{//队列还有一些元素
		p=Q->rear->next;//通过rear找到头结点赋给p
		Q->rear->next=p->next;//rear连上头结点下一个结点
		free(p);//把p释放掉
	}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开槌在即:陈可之油画|《我的星辰》

《我的星辰》 尺寸:46x46cm 陈可之2020年绘 “星辰大海,梦想自有梦想的力量,仰望在银河的想象,我们启航。”读着画名,凝视着画,脑海里回荡着《星辰大海》的旋律。油画《我的星辰》是陈可之先生“心宇宙”系…

React 项目结构小结

React 项目结构小结 简单的记录一下目前 React 项目用的依赖和实现 摸索了大半年了大概构建一套用起来还算轻松的体系……?基本上应该是说可以应对大部分的项目了 使用的依赖 目前项目还在 refactoring 的阶段,所以乱得很,这里是新建一个…

如何理解API?API 是如何工作的呢?

大家可能最近经常听到 API 这个概念,那什么是API,它又有什么特点和好处呢? wiki 百科镇楼 APIs are] a set of subroutine definitions, protocols, and tools for building application software. In general terms, it’s a set of clear…

ZKP10.2 Efficient Recursion via Statement Folding (Nova)

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 10: Recursive SNARKs, Aggregation and Accumulation (Dan Boneh) 10.3 Efficient Recursion via Statement Folding: Nova, Supernova, and generalizations The difficulty with full recursion Prover P needs to build a…

严重的软件漏洞,你都知道和修复了吗?

有一些漏洞,影响深远而且影响重大。以下的严重软件漏洞,你都知道和修复了吗? 1. Log4Shell Log4Shell软件漏洞存在于Apache Log4j中,这种流行的Java日志框架被全球数千万人使用。 2021年11月,阿里云安全团队成员陈兆军发现了一个严重的代码漏洞。陈兆军最先注意到了Mi…

怎样提取视频提取的人声或伴奏?

有些小伙伴们进行音视频创作时,可能会需要提取音频的人声或者是伴奏。这里给大家推荐一个音分轨人声分离软件,支持一键提取音频人声和一键提取伴奏功能,可批量导入文件同步提取,简单高效,是音视频创作者的不二选择&…

分体式离子风刀和整体式离子风刀分别有哪些优缺点

离子风刀是一种利用高速旋转的离子风扇产生的离子风来清洁和干燥物体表面的设备。根据离子风扇的安装方式,离子风刀可以分为分体式离子风刀和整体式离子风刀。下面是它们各自的优缺点: 分体式离子风刀的优点: 安装方便:分体式离子…

首发scitb包,一个为制作统计表格而生的R包

目前,本人写的第3个R包scitb包已经正式在R语言官方CRAN上线,scitb包是一个为生成专业化统计表格而生的R包。 可以使用以下代码安装 install.packages("scitb")scitb包对我而言是个很重要的R包,我的很多想法需要靠它做平台来实现&a…

bean product not found within scope之解决方法

错误原因&#xff1a; 获取bean中的商品信息时报错 解决方法&#xff1a; 修改为下面代码即可&#xff1a; <jsp:useBean id"product" class"com.model.Product" scope"session"></jsp:useBean>

TP858 3BSE018138R1 具有高性能CPU的工业PC技术

TP858 3BSE018138R1 具有高性能CPU的工业PC技术 为了充分利用新电脑的扩展图形功能&#xff0c;如DirectX&#xff0c;Beckhoff Automation重新设计了TwinCAT automation软件套件中的Scope工具。这为TwinCAT用户在灵活的软件环境中提供了一系列令人印象深刻的测量技术。改进的…

泊车功能专题介绍 ————智能泊车辅助系统性能要求及试验方法(GB/T 41630-2022)

文章目录 术语系统状态转换及信息提示系统非激活状态停车位搜索状态泊车辅助状态系统退出条件系统故障响应 性能要求避撞要求挡位调整次数要求平行停车位&#xff08;空间车位&#xff09;结束位置垂直停车位&#xff08;空间车位&#xff09;结束位置平行停车位&#xff08;线…

C++标准模板(STL)- 类型支持 (类型属性,is_pod,is_trivially_copyable,is_standard_layout)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库

背景介绍 Apache Doris是一个基于MPP架构的易于使用&#xff0c;高性能和实时的分析数据库&#xff0c;以其极高的速度和易用性而闻名。海量数据下返回查询结果仅需亚秒级响应时间&#xff0c;不仅可以支持高并发点查询场景&#xff0c;还可以支持高通量复杂分析场景。 这些都…

如何使用Scrapy提取和处理数据

目录 一、安装和设置Scrapy 二、创建爬虫 三、提取数据 四、处理数据 五、存储数据 六、进阶操作 七、注意事项 总结 Scrapy是一个强大且灵活的Python库&#xff0c;用于创建网页爬虫&#xff0c;提取和处理数据。本文将为您深入讲解如何使用Scrapy进行数据处理&#x…

AI正在改变人类社会 - 内容行业的衰落

现在的 AI 技术&#xff0c;每天都在进化。我有一种感觉&#xff0c;普通人大概没意识到&#xff0c;它马上就要改变人类社会了。 历史上&#xff0c;这种事一再发生。在你不知不觉中&#xff0c;某些大事件悄悄酝酿&#xff0c;突然就冲击到了你的生活&#xff0c;将你的人生…

TensorRT加速的原因:量化+网络结构优化

文章目录 1. TensorRT 简介2. TensorRT 加速的原理量化网络结构优化 3. TensorRT 的 工作流程TensorRT引擎的构建&#xff1a;BuildTensorRT引擎的推理&#xff1a;Infer 1. TensorRT 简介 TensorRT可以帮助你把训练好的AI模型&#xff0c;部署到边端Nvidia的设备&#xff0c;…

结合组件库实现table组件树状数据的增删改

如图所示&#xff0c;可以实现树状数据的新增子项&#xff0c;新增平级&#xff0c;删除。主要用到了递归 代码&#xff1a; <template><el-table :data"tableData" style"width: 100%; margin-bottom: 20px" row-key"id" border def…

大促期间如何监测竞品数据

无论在什么时候&#xff0c;竞品的数据都是品牌非常关注的&#xff0c;大促当然也不例外&#xff0c;所以准确监测到竞品数据应该如何分析也很关键&#xff0c;通过分析竞品&#xff0c;品牌可以获取非常多有价值的内容&#xff0c;如竞品王牌产品的分析、行业分析报告等。 力维…

JAVA毕业设计108—基于Java+Springboot的OA办公自动化人事管理系统(源码+数据库)

基于JavaSpringboot的OA办公自动化人事管理系统(源码数据库)108 一、系统介绍 本系统分为员工、部门经理、人事、管理员四种角色(角色菜单可以自行分配) 用户&#xff1a; 登录、考勤管理、申请管理、任务管理、日程管理、工作计划管理、文件管理、笔记管理、邮件管理、通讯…

如何在 Photoshop 中制作水晶效果

如何在 Photoshop 中仅使用一些智能滤镜快速轻松地制作水晶效果 1.如何在 Photoshop 中创建快速背景 步骤1 首先&#xff0c;让我们从一个新的画布开始&#xff0c;使用颜色填充图层填充柔和的紫罗兰色。通过选择图层并右键单击 > 转换为智能对象&#xff0c;将该颜色填充…