链队列的基本操作(带头结点,不带头结点)
结构体
typedef struct linknode{int data;struct linknode* next;后继指针
}linknode;
typedef struct {linknode* front, * rear;//队头队尾指针
}linkquene;
初始化队列(带头结点)
int initquene(linkquene* q)//初始化队列
{q->front = q->rear = (linknode*)malloc(sizeof(linknode));q->front->next =NULL;
}
队列判空
int isempty(linkquene* q)//队列判空
{if (q->front == q->rear)return true;else return false;
}
进队操作
int enquene(linkquene* q, int x)//进队操作
{linknode* s = (linknode*)malloc(sizeof(lnode));s->data = x;s->next = NULL;q->rear->next = s;q->rear = s;
}
出队操作
int dequene(linkquene* q, int* x)//出队操作
{if (q->front == q->rear)return false;linknode* p = q->front->next;x = p->data;q->front->next = p->next;if (q->rear == p)q->rear = q->front;free(p);return true;
}
完整的测试代码
#include<stdio.h>
typedef struct linknode{int data;struct linknode* next;
}linknode;
typedef struct {linknode* front, * rear;
}linkquene;
int initquene(linkquene* q)//初始化队列
{q->front = q->rear = (linknode*)malloc(sizeof(linknode));q->front->next =NULL;
}
int isempty(linkquene* q)//队列判空
{if (q->front == q->rear)return true;else return false;
}
int enquene(linkquene* q, int x)//进队操作
{linknode* s = (linknode*)malloc(sizeof(linknode));s->data = x;s->next = NULL;q->rear->next = s;q->rear = s;
}int dequene(linkquene* q, int* x)//出队操作
{if (q->front == q->rear)return false;linknode* p = q->front->next;x = p->data;q->front->next = p->next;if (q->rear == p)q->rear = q->front;free(p);return true;
}
int main()
{linkquene q;initquene(&q);if (!isempty(&q)) //队列判空 printf("队列不为空\n");elseprintf("队列为空\n");int x = 0;printf("要进队的元素为:");scanf("%d", &x);if (enquene(&q, x)) //进队操作 printf("进队元素为%d\n", x);elseprintf("队列满,不能进队%d\n", x);if (dequene(&q, &x)) //出队操作 printf("出队元素为%d\n", x);elseprintf("队列为空,不能出队\n");printf("%d\n", x);
}
不带头结点初始化操作
int initquene(linkquene* q)//不带头结点的初始化队列
{q->front =NULL;q->next = NULL;
}
不带头结点队列判空
int isempty(linkquene* q)//不带头结点的队列判空
{if (q->front == NULL)return true;elsereturn false;
}
不带头结点进队操作
int enquene(linkquene* q, int x)//不带头结点进队操作
{linknode* s = (linknode*)malloc(sizeof(linknode));s->data = x;s->next = NULL;if(q->front==NULL)//在空队列中插入元素{q->front=s;//修改队尾指针q->rear=s;}else{q->rear->next=s;//新结点插入到rear结点之后q->rear=s; //修改rear指针}
}
不带头结点的出队操作
int dequene(linkquene* q, int* x)//不带头结点的出队操作
{if (q->front == NULL)return false;linknode* p = q->front;x = p->data;q->front = p->next;if (q->rear == p){q->front=NULL;q->rear =NULL;}free(p);return true;
}
不带头结点的完整测试代码
#include<stdio.h>
typedef struct linknode{int data;struct linknode* next;
}linknode;
typedef struct {linknode* front, * rear;
}linkquene;
int initquene(linkquene* q)//不带头结点的初始化队列
{q->front =NULL;q->rear = NULL;
}
int isempty(linkquene* q)//不带头结点的队列判空
{if (q->front == NULL)return true;elsereturn false;
}
int enquene(linkquene* q, int x)//不带头结点进队操作
{linknode* s = (linknode*)malloc(sizeof(linknode));s->data = x;s->next = NULL;if(q->front==NULL)//在空队列中插入元素{q->front=s;//修改队尾指针q->rear=s;}else{q->rear->next=s;//新结点插入到rear结点之后q->rear=s; //修改rear指针}
}
int dequene(linkquene* q, int* x)//不带头结点的出队操作
{if (q->front == NULL)return false;linknode* p = q->front;x = p->data;q->front = p->next;if (q->rear == p){q->front=NULL;q->rear =NULL;}free(p);return true;
}
int main()
{linkquene q;initquene(&q);if (!isempty(&q)) //队列判空 printf("队列不为空\n");elseprintf("队列为空\n");int x = 0;printf("要进队的元素为:");scanf("%d", &x);if (enquene(&q, x)) //进队操作 printf("进队元素为%d\n", x);elseprintf("队列满,不能进队%d\n", x);if (dequene(&q, &x)) //出队操作 printf("出队元素为%d\n", x);elseprintf("队列为空,不能出队\n");printf("%d\n", x);
}

相关文章:
链队列的基本操作(带头结点,不带头结点)
结构体 typedef struct linknode{int data;struct linknode* next;后继指针 }linknode; typedef struct {linknode* front, * rear;//队头队尾指针 }linkquene; 初始化队列(带头结点) int initquene(linkquene* q)//初始化队列 {q->front q->r…...
深入学习 Redis Cluster - 基于 Docker、DockerCompose 搭建 Redis 集群,处理故障、扩容方案
目录 一、基于 Docker、DockerCompose 搭建 Redis 集群 1.1、前言 1.2、编写 shell 脚本 1.3、执行 shell 脚本,创建集群配置文件 1.4、编写 docker-compose.yml 文件 1.5、启动容器 1.6、构建集群 1.7、使用集群 1.8、如果集群中,有节点挂了&am…...
C现代方法(第3、4章)笔记
文章目录 C现代方法笔记(chapter3&4)第3章 格式化输入/输出3.1 printf函数3.1.1 转换说明3.1.2 转义序列 3.2 scanf函数3.2.1 scanf函数的工作方法3.2.2 格式串中的普通字符3.2.3 易混淆的printf函数和scanf函数 问与答编程题 第4章 表达式4.1 算术运…...
R语言绘制染色体变异位置分布图,RIdeogram包
变异位点染色体分布图 今天分享的内容是通过RIdeogram包绘制染色体位点分布图,并介绍一种展示差异位点的方法。 在遗传学研究中,通过测序等方式获得了基因组上某些位置的基因型信息。 如下表,第一列是变异位点的ID,第二列是染色体…...
Vue知识系列(7)每天10个小知识点
目录 系列文章目录Vue知识系列(1)每天10个小知识点Vue知识系列(2)每天10个小知识点Vue知识系列(3)每天10个小知识点Vue知识系列(4)每天10个小知识点Vue知识系列(5&#x…...
5分钟就能实现的API监控,有什么理由不做呢?
API深度影响着你的应用 今天的数字应用世界其实是一个以API为中心的世界,我们只是没有意识到这些API的重要性。比如在电子商务交易、社交媒体等对交互高度依赖的领域,可以说API决定了应用的质量一点也不为过。 以京东为例,用户的每一次操作背…...
Jmeter引入外部jar包以满足加密数据的Post请求
目录 一、把项目打成jar包 1、创建一个Maven项目,并保证可以正常运行。 2、把工具类放置项目中,确保无报错且能够正常使用。 3、打包 4、验证 jar包是否有效 5、你想打多个工具类的包 二、在jmeter中使用 1、把jar包放到jmeter仓库下,…...
了解冒泡排序
package com.mypackage.array;import java.util.Arrays;public class Demo07 {public static void main(String[] args) {int[] a {3,2,6,7,4,5,6,34,56,7};int[] sort1 sort1(a); //调用我们自己写的排序方法后,返回一个排序后的数组System.out.println(Array…...
群辉 Synology NAS Docker 安装 RustDesk-server 自建服务器只要一个容器
from https://blog.zhjh.top/archives/M8nBI5tjcxQe31DhiXqxy 简介 之前按照网上的教程,rustdesk-server 需要安装两个容器,最近想升级下版本,发现有一个新镜像 rustdesk-server-s6 可以只安装一个容器。 The S6-overlay acts as a supervi…...
为什么要有override
多态一定会成功吗 因为逻辑是用户编写的,那么肯定会有遗漏的地方,那就要规则来限制。就比如多态,都知道条件之一是子类重写了父类的虚函数,但是如果子类没有严格遵守这个规则,就无法达到目的。就比如这个代码…...
Linux界的老古董
Slackware 是由 Patrick Volkerding 制作的 Linux 发行版,从 1993 年发布至今也一直在 Patrick 带领下进行维护。7 月 17 日,Slackware 才刚刚过完它 24 岁的生日,看似年纪轻轻的它,已然是 Linux 最古老的发行版。 Slackware 的发…...
安卓逆向 - Xposed入门教程
一、引言 Xposed框架,是Android中Hook技术的一个著名的框架,拥有非常丰富的模块,给我们分析app提供了极大的便利,Xposed框架是开源的。最高支持到Android 8(重要) github地址:GitHub - rovo89…...
【嵌入式】2024届校招岗位汇总
公司岗位博世嵌入式自动化测试工程师博世嵌入式开发(软件刷写及启动)工程师博世Linux/C软件工程师博世自动驾驶软件开发工程师博世嵌入式软件工程师(BSP)博世嵌入式电子工程师 (BMS&电源)博世物联网嵌入式开发工程师 …...
Docker搭建ELK日志采集服务及Kibana可视化图表展示
架构 ES docker network create elkmkdir -p /opt/ELK/es/datachmod 777 /opt/ELK/esdocker run -d --name elasticsearch --net elk -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -v /opt/ELK/es/plugins:/usr/share/elasticsearch/plugins -v /opt/…...
SpringBoot结合MyBatis实现多数据源配置
SpringBoot结合MyBatis实现多数据源配置 一、前提条件 1.1、环境准备 SpringBoot框架实现多数据源操作,首先需要搭建Mybatis的运行环境。 由于是多数据源,也就是要有多个数据库,所以,我们创建两个测试数据库,分别是…...
单个vue echarts页面
<template> <div ref"history" class"echarts"></div> </template> <script> export default{ data () { return {}; }, methods: { history(){ let myChart this.$echarts.init(this.$refs.history); // 绘制图表 myCha…...
【web开发】6、Django(1)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、Django是什么?二、使用步骤1.安装Django2.创建项目3.创建app4.快速上手5.模板继承 数据库操作1.安装第三方模块2.自己创建数据库3.DJango链接数据库…...
第29节-PhotoShop基础课程-滤镜库
文章目录 前言1.滤镜库2.Camera Raw滤镜 (用来对图片进行预处理,最全面的一个)3.神经滤镜(2022插件 需要先下载)4.液化(胖-> 瘦 矮->高)5.其它滤镜1.自适应广角2.镜头矫正 把图片放正3.消…...
空间(蓝桥杯)
空间 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝准备用 256MB 的内存空间开一个数组,数组的每个元素都是 32 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,…...
蓝桥杯2023年第十四届省赛真题-更小的数--题解
目录 蓝桥杯2023年第十四届省赛真题-更小的数 题目描述 输入格式 输出格式 样例输入 样例输出 提示 【思路解析】 【代码实现】 蓝桥杯2023年第十四届省赛真题-更小的数 时间限制: 3s 内存限制: 320MB 提交: 895 解决: 303 题目描述 小蓝有一个长度均为 n 且仅由数字…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
