(数据结构)链队列的基本操作

#include<stdio.h>
#include<stdlib.h>
typedef struct QueueNode
{int data;struct QueueNode* next;
}LinkedQueueNode;
typedef struct LQueue
{LinkedQueueNode* front;  //队头指针LinkedQueueNode* rear;	 //队尾指针
}*LinkedQueue;
//链队列的初始化
LinkedQueue Init_LinkedQueue()
{LinkedQueue Q = (LinkedQueue)malloc(sizeof(LinkedQueue));  //为链队头、尾指针申请空间LinkedQueueNode* head = (LinkedQueueNode*)malloc(sizeof(LinkedQueueNode));if (head==NULL){printf("申请队列空间失败\n");}if (head != NULL && Q != NULL){head->next = NULL;Q->front = head;Q->rear = head;}return Q;
}
//判断队列空
int LinkedQueue_Empty(LinkedQueue Q)
{if (Q->front == Q->rear){return 1; //队列为空}else{return 0;}
}
//入队
int Enter_LinkedQueue(LinkedQueue Q,int x)
{LinkedQueueNode* node;  //链队节点指针变量node = (LinkedQueueNode*)malloc(sizeof(LinkedQueueNode));if (node == NULL){return 0;	//申请队列空间失败}node->data = x;node->next = NULL;Q->rear->next = node;   //将新节点插入队尾Q->rear = node;		//将队尾元素设置为尾指针return 1;
}
//出队
int Delete_LinkedQueue(LinkedQueue Q, int* x)
{LinkedQueueNode* node;if (Q->front == Q->rear)  //判断队列为空{return 0;}else{node = Q->front->next;	//将原队列列顶元素的下一个节点赋值给node*x = node->data;Q->front->next = node->next; //头指针Q指向链队列的下一个数据元素if (node == Q->rear){Q->rear = Q->front;  //若队列仅有一个数据元素,让队列为空}free(node);return 1;}
}
//取队列头数据元素
int GetFront_LinkedQueue(LinkedQueue Q, int* x)
{if (Q->front == Q->rear)  //判断队列为空{return 0;}*x = Q->front->next->data;return 1;
}
int main()
{//初始化LinkedQueue Q;Q = Init_LinkedQueue();while (1){printf("输入1为入队,输入0为退队\n");int ret;printf("请输入选项\n");scanf("%d", &ret);if (ret == 1){int x;printf("请输入需要入队的值\n");scanf("%d", &x);Enter_LinkedQueue(Q, x);continue;}else if (ret == 0){int y = 0;Delete_LinkedQueue(Q, &y);printf("出队的值为:\n");printf("%d \n", y);continue;}else{printf("选项输入错误\n");}}return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IPv6地址配置方式

IPv6地址分类 IPv6地址分为单播地址、任播地址&#xff08;Anycast Address&#xff09;、组播地址三种类型。和IPv4相比&#xff0c;取消了广播地址类型&#xff0c;以更丰富的组播地址代替&#xff0c;同时增加了任播地址类型。 单播地址 IPv6单播地址标识了一个接口&…

如何创建 Spring Boot 项目

如果有pom.xml有插件异常&#xff0c;可以先删除。 maven配置要配置好 然后yaml&#xff0c;再启动就行 server:port: 9991 spring:application:name: demo3参考 如何创建 Spring Boot 项目_创建springboot项目_良月初十♧的博客-CSDN博客

【多线程面试题十六】、谈谈ReentrantLock的实现原理

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;谈谈ReentrantLock的实现…

Android NDK开发详解之CMake工具链

Android NDK开发详解之CMake工具链 CMake 工具链文件用法工具链参数ANDROID_ABIANDROID_ARM_MODEANDROID_ARM_NEONANDROID_LDANDROID_NATIVE_API_LEVELANDROID_PLATFORMANDROID_STL 了解 CMake 构建命令使用预构建库构建第三方代码CMake 中的 YASM 支持报告问题 Android NDK 支…

本地生活商家用批量剪辑有用吗?

可以用&#xff0c;现在很多本地生活商家&#xff0c;都会通过借助批量剪辑工具来提升视频的曝光量&#xff0c;从而带动店铺的客流量。 推荐本地生活商家使用超级编导批量剪辑工具&#xff0c;这是一款0基础小白也可以很快上手的批量剪辑工具&#xff0c;剪辑页面布局以及功能…

c: two-dimensional array

/*** ****************************************************************************** file twoDimensional.h* brief 二维数组 Pointers and 2-D arrays* author geovindu,Geovin Du,涂聚文 (geovindu163.com)* ide: vscode c11,c17 windows 10* date…

VPS是什么?详解亚马逊云科技Amazon Lightsail(VPS)虚拟专用服务器

2006年&#xff0c;南非开普敦&#xff0c;亚马逊推出了WBS&#xff0c;以网络服务的形式向企业提供基础的IT服务。亚马逊云科技的一小步&#xff0c;在无数技术更迭&#xff0c;天才设计师和程序员的努力与基础设施建设的完善之下成为了人类科技进展的一大步。 亚马逊云科技可…

电路的电线的拼接

不积跬步无以至千里&#xff0c;今天小编也是复习今天学习的内容&#xff0c;废话不多说&#xff0c;看博客吧&#xff01;&#xff01;&#xff01; 目录 准备条件 操作 成品 准备条件 操作 将定制的套管插入导线当中&#xff0c;24V或者0V是尖端的端子&#xff0c;后面根…

web前端常见开发工具汇总 你用过几个?

搬运旗下公众号的内容~ 目录 1.记事本 2.Visual studio code 3.Hbuilder 4.Eclipse 5.Webstorm 6.Notepad 随着信息时代的不断进步&#xff0c;互联网在人类社会中所占的地位愈发举足轻重。大大小小的网站&#xff0c;构成了如今光怪陆离的网络社会。我们知道&#xff0c…

Sprint Cloud Stream整合RocketMq和websocket实现消息发布订阅

1.引入RocketMQ依赖&#xff1a;首先&#xff0c;在pom.xml文件中添加RocketMQ的依赖&#xff1a; <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.0</versi…

轻量级 IDE 文本编辑器 Geany 发布 2.0

Geany 是功能强大、稳定、轻量的开发者专用文本编辑器&#xff0c;支持 Linux、Windows 和 macOS&#xff0c;内置支持 50 多种编程语言。 2005 年Geany 发布首个版本 0.1。上周四刚好是 Geany 诞生 18 周年纪念日&#xff0c;官方发布了 2.0 正式版以表庆祝。 下载地址&#…

正则表达式引擎比较(翻译自:A comparison of regex engines)

原文&#xff1a; A comparison of regex engines – Rust Leipzig 引言 正则表达式&#xff08;或简称regex&#xff09;通常用于模式搜索算法。 有许多不同的正则表达式引擎提供不同的表达式支持、性能约束和语言绑定。 基于 John Maddock 之前的工作 (regex comparison)和…

window11 更改 vscode 插件目录,释放C盘内存

由于经常使用vscode开发会安装一些代码提示插件&#xff0c;然后C盘内容会逐渐缩小&#xff0c;最终排查定位到vscode。这个吃内存不眨眼的家伙。 建议&#xff1a;不要把插件目录和vscode安装目录放在同一个位置&#xff0c;不然这样vscode更新后&#xff0c;插件也会消失。 v…

Git窗口打开vim后如何退出编辑(IDEA/Goland等编辑器)

最近在学习git高级操作过程中&#xff0c;遇到了一下问题&#xff1a; 我在学习Git合并多个commit为一个的时候&#xff0c;需要输入一个命令 git rebase -i HEAD~2 这说明已经是编辑模式了。当我写好后&#xff0c;我还按照原来在linux上的按下ESC键&#xff0c;但是只是光…

【数据结构】数组和字符串(四):特殊矩阵的压缩存储:稀疏矩阵——三元组表

文章目录 4.2.1 矩阵的数组表示4.2.2 特殊矩阵的压缩存储a. 对角矩阵的压缩存储b~c. 三角、对称矩阵的压缩存储d. 稀疏矩阵的压缩存储——三元组表结构体初始化元素设置打印矩阵主函数输出结果代码整合 4.2.1 矩阵的数组表示 【数据结构】数组和字符串&#xff08;一&#xff…

双11满减大促,直播间1折抢购!

你是知道的&#xff0c;双11本来是光棍节&#xff01; 2009年&#xff0c;阿里掀起了一场网络促销活动&#xff0c;光棍节从此成了全民的购物节&#xff01; 从2009年到2021年&#xff0c;阿里双11当天的交易额&#xff0c;从仅有的0.5亿猛增至5403亿&#xff0c;以惊人的速度…

目标检测及锚框、IoU

文章目录 1. 目标检测2. 锚框3. IoU - 交并比4. 赋予锚框标号5. 使用非极大值抑制&#xff08;NMS&#xff09;输出 1. 目标检测 物体检测&#xff08;目标检测&#xff09;是计算机视觉和数字图像处理的热门方向&#xff0c;意在判断一幅图像上是否存在感兴趣物体&#xff0c…

List的add(int index,E element)陷阱,不得不防

项目场景&#xff1a; 项目中有两个List列表&#xff0c;一个是List1用来存储一个标识&#xff0c;后续会根据这个标识去重。 一个List2是用来返回对象的&#xff0c;其中对象里也有一个属性List3。现需要将重复的标识数据追加到List3 我想到的两个方案&#xff1a; 尽量不动…

C/S架构和B/S架构

1. C/S架构和B/S架构简介 C/S 架构&#xff08;Client/Server Architecture&#xff09;和 B/S 架构&#xff08;Browser/Server Architecture&#xff09;是两种不同的软件架构模式&#xff0c;它们描述了客户端和服务器之间的关系以及数据交互的方式。 C/S 架构&#xff08…