C语言实现链式队列

embedded/2024/10/31 1:23:14/

链式队列

有头结点,使得front==rear为判空条件

1、创建链式队列

typedef int data_type;
typedef struct link_node{struct link_node *next;data_type data;
}link_list;
typedef struct{
link_list *front;
link_list *rear;
}link_queue;link_queue *create_link_queue(){
link_queue *q=NULL;
q=(link_queue *)malloc(sizeof(link_queue));link_list *head=(link_list*)malloc(sizeof(link_list));
head->next=NULL;
q->rear=q->front=head;
return q;
}

2、判空

int is_empty(link_queue *q){
return q->front==q->rear;
}

3、入队

void in_queue(link_queue *q,data_type data){
link_list *temp=(link_list*)malloc(sizeof(link_list));
temp->data=data;
temp->next=q->rear->next;
q->rear->next=temp;q->rear=temp;
}

4、出队

当最后一个元素出队,将rear和front指向同一个地址

data_type out_queue(link_queue *q){
link_list *temp=q->front->next;
data_type data=temp->data;
q->front->next=temp->next;
free(temp);
temp=NULL;
//最后一个元素出队
if(q->front->next==NULL){
q->rear=q->front;
}return data;
}

http://www.ppmy.cn/embedded/9371.html

相关文章

SpringBoot整合Mybatis

目录 一、引入依赖 二、创建实体类 三、编写mapper接口以及映射文件 Mapper接口 映射文件 四、编写application.yml配置文件 五、进行测试 之前搭建项目的时候,没有什么问题包括引入依赖,结果在测试的时候一直报错,后面原因竟然是引入…

学习 Rust 的第七天:如何理解引用

大家好, 今天是我学 Rust 的第7天,今天我要来看一下引用和借用。昨天我学习了 Rust 的所有权模型,如果你对 Rust 一无所知的话,那篇文章是必读的。 引用 昨天我们看到,将参数传递给函数与将值赋给另一个变量产生了相…

【任务调度】Apache DolphinScheduler快速入门

Apache DolphinScheduler基本概念 概念:分布式、去中心化、易扩展的可视化DAG工作流任务调度系统。 作用:解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。Apache DolphinScheduler是一款开源的调度工具&#xff…

声明式事务

文章目录 1.事务分类1.传统方式解决事务2.声明式事务 2.声明式事务案例1.需求分析2.解决方案分析3.数据表创建4.编写GoodsDao.java1.编写配置文件JdbcTemplate_ioc.xml2.单元测试 5.编写GoodsService.java6.配置事务管理器JdbcTemplate_ioc.xml7.进行测试 3.debug事务管理器Dat…

大模型日报2024-04-22

大模型日报 2024-04-22 大模型资讯 Mistral与Mixtral大型语言模型对比:7B、8x7B及8x22B 摘要: 最近,IT新闻频道广泛报道了新公开的Mixtral 8x22B模型,该模型在多项基准测试中超越了ChatGPT 3.5版本,尤其在MMLU等测试中表现突出。本…

Python爬虫数据可视化分析

Python爬虫用于从网络上获取数据,数据可视化分析则是将获取的数据进行可视化展示和分析,帮助我们更好地理解数据、发现规律、做出决策。下面是一个基本的Python爬虫数据可视化分析的流程: 步骤一:数据爬取 1.选择合适的爬虫工具&a…

关于FastJson转换map集合为json字符串解析时格式出错的问题

在Java中使用Fastjson将包含Map类型key的Map集合转换为String时,如果直接使用Fastjson的JSON.toJSONString()方法,可能会因为JavaScript的安全性限制(例如对象的key必须是字符串)而在前端JavaScript解析时出现问题。 因为当 转换时…

将自己的项目上传至Git

一、安装Git 官网:Git (git-scm.com) 二、注册gitee 官网:工作台 - Gitee.com 进入“我的”出现以下界面 三、创建仓库 点击加号,新建仓库 根据自己的需求取名,描述仓库,开源还是私有,点击创建即可,点击我的即可…