针对考研的C语言学习(循环队列-链表版本以及2019循环队列大题)
题目

【注】此版本严格按照数字版循环队列的写法,rear所代表的永远是空数据
图解
1.初始化部分和插入部分

2出队

3.分部代码解析
初始化
void init_cir_link_que(CirLinkQue& q)
{q.rear = q.front = (LinkList)malloc(sizeof(LNode));q.front->next = NULL;q.rear->next = q.front;
}
入队
bool insert_que(CirLinkQue& q, ElemType data)
{//此版本严格按照数组版本的结构,rear节点所代表数据永远为空if (q.rear->next == q.front){//表示现有空间已满,需额外开辟空间LinkList pnew = (LinkList)malloc(sizeof(LNode));q.rear->data = data;q.rear->next = pnew;pnew->next = q.front;q.rear = pnew;return true;}//不需要额外开辟空间//意思就是已经有出去过的数据了,但没有断链,可重复使用q.rear->data = data;q.rear = q.rear->next;return true;
}
出队
bool pop_que(CirLinkQue& q, ElemType& data)
{//出队//判空if (q.rear == q.front){return false;}data = q.front->data;q.front->data = NULL;//可写可不写,后面新插入的数据会覆盖这些不要的数据q.front = q.front->next;return true;
}
全部可运行代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct node {ElemType data;struct node* next;
}LNode, * LinkList;typedef struct {LinkList front;LinkList rear;
}CirLinkQue;void init_cir_link_que(CirLinkQue& q)
{q.rear = q.front = (LinkList)malloc(sizeof(LNode));q.front->next = NULL;q.rear->next = q.front;
}bool insert_que(CirLinkQue& q, ElemType data)
{//此版本严格按照数组版本的结构,rear节点所代表数据永远为空if (q.rear->next == q.front){//表示现有空间已满,需额外开辟空间LinkList pnew = (LinkList)malloc(sizeof(LNode));q.rear->data = data;q.rear->next = pnew;pnew->next = q.front;q.rear = pnew;return true;}//不需要额外开辟空间//意思就是已经有出去过的数据了,但没有断链,可重复使用q.rear->data = data;q.rear = q.rear->next;return true;
}bool pop_que(CirLinkQue& q, ElemType& data)
{//出队//判空if (q.rear == q.front){return false;}data = q.front->data;q.front->data = NULL;//可写可不写,后面新插入的数据会覆盖这些不要的数据q.front = q.front->next;return true;
}
int main()
{CirLinkQue q;ElemType data;init_cir_link_que(q);insert_que(q, 1);insert_que(q, 2);insert_que(q, 3);pop_que(q, data);insert_que(q, 4);/*pop_que(q, data);insert_que(q, 5);pop_que(q, data);pop_que(q, data) ? puts("true") : puts("false");*/return 0;
}
4.运行结果图

动图展示也不太清晰,若不懂的可以手动操作一下感受一下
相关文章:
针对考研的C语言学习(循环队列-链表版本以及2019循环队列大题)
题目 【注】此版本严格按照数字版循环队列的写法,rear所代表的永远是空数据 图解 1.初始化部分和插入部分 2出队 3.分部代码解析 初始化 void init_cir_link_que(CirLinkQue& q) {q.rear q.front (LinkList)malloc(sizeof(LNode));q.front->next NULL…...
系统架构设计师教程 第12章 12.4 信息系统架构案例分析 笔记
12.4 信息系统架构案例分析 ★★★★☆ 12.4.1 价值驱动的体系结构——连接产品策略与体系结构 1.价值模型概述 价值模型核心的特征可以简化为三种基本形式。 (1)价值期望值:表示对某一特定功能的需求,包括功能、质量和不同 级别质量的实用性。 (2)…...
web1.0,web2.0,web3.0 有什么区别 详解
Web 的发展经历了多个阶段,每个阶段都有其独特的特点和技术进步。下面是 Web 1.0、Web 2.0 和 Web 3.0 之间的主要区别和详细解释: Web 1.0 时间范围:大约在 1991 年至 1995 年。 Web 1.0 是互联网的最初形态,也被称为静态 Web…...
将图片添加到 PDF 的 5 种方法
需要一种称为 PDF 编辑器的特定工具才能将图片添加到 PDF。尽管大多数浏览器在查看和注释 PDF 文件方面都非常出色,但如果您使用图像到 PDF 技术,则只能将照片放入 PDF 中。无需修改即可将 PDF 文件恢复为原始格式的能力是使用此类软件程序甚至在线服务的…...
TiDB 优化器丨执行计划和 SQL 算子解读最佳实践
导读 在数据库系统中,查询优化器是数据库管理系统的核心组成部分,负责将用户的 SQL 查询转化为高效的执行计划,因而会直接影响用户体感的性能与稳定性。优化器的设计与实现过程充满挑战,有人比喻称这是数据库技术要持续攀登的珠穆…...
初学51单片机之I2C总线与E2PROM以及UART简单实例应用
这是I2C的系列的第三篇,这篇主要是写一个简单的程序来实践一下相关的内容。前面博主写过一个电子密码锁的程序初学51单片机之简易电子密码锁及PWM应用扩展_51单片机设计电子密码锁-CSDN博客 本篇主要是在此基础上修改下程序,让密码存储在E2PROM中&#…...
软考高级软件架构师论文——论Web系统的测试技术及其应用
【摘要】 本人于2023年8月参与了某地级市的市级机关电子政务信息系统的建设工作,该项目是该市机关的电子政务网建设计划的一部分,笔者在该项目中担任项目经理和系统分析师一职,主要负责项目的日常全面管理和质量保证与质量控制工作。该项目是基于WEB系统的,由于WEB系统具有…...
快速总结AFPN
AFPN: Asymptotic Feature Pyramid Network for Object Detection 解决的问题 特征金字塔架构的提出是为了解决尺度变化的问题,图像中物体真正有用的特征在顶部最高层需要通过多个中间尺度传播,并与这些尺度的特征交互,才能与底部的低层特征…...
Linux 内核中USB鼠标枚举失败问题总结
一、环境: 机器平台:linux 内核版本:linux-3.4 二、问题: USB鼠标接入后报错,log显示设备无法枚举 usb 1-1: new low-speed USB device number 10 using musb-hdrc hub 1-0:1.0: unable to enumerate USB device o…...
十六进制转二进制
128 64 32 16 8 4 2 1 十六进制:0~9ABCDEF(A是10、B是11、C是12、D是13、E是14、F是15) 每一个十六进制位转换成4个二进制位,左边不足4个补0 示例: 109CBE:0001 0000 1001 1100 1011 1110 8 4 2 1 1 …...
Python保存CSV文件,Excel打开后中文乱码
情况描述 在做多语言文件处理时, 使用 pandas, 并且指定了encoding为 UTF-8, 在 IDE, Sublime等编辑器上查看都显示正常,使用Excel打开非英文字符, 例如汉字, 阿拉伯文, 希伯来文等显…...
数据湖数据仓库数据集市数据清理以及DataOps
一提到大数据我们就知道是海量数据,但是我们并不了解需要从哪些维度去考虑这些数据的存储。比如 数据湖、数据仓库、数据集市,以及数据自动化应用DataOps有哪些实现方式和实际应用,这篇文章将浅显的做一次介绍。 数据湖 数据湖是一种以自然…...
「Ubuntu」文件权限说明(drwxr-xr-x)
我们在使用Ubuntu 查看文件信息时,常常使用 ll 命令查看,但是输出的详细信息有些复杂,特别是 类似与 drwxr-xr-x 的字符串,在此进行详细解释下 属主:所属用户 属组:文件所属组别 drwxr-xr-x 7 apps root 4…...
JS-学生管理系统(功能实现)
基础知识点掌握: 1.DOM节点 首先DOM树当做一颗到着生长的树,DOM树里面的每一个内容称为节点 节点类型: 属性节点元素节点文本节点其他 2.查找节点: 查找节点分为3个类型: 父节点子节点兄弟节点 (1&…...
C# 屏幕录制工具
屏幕录制工具 开发语音:C# vb.net 下载地址:https://download.csdn.net/download/polloo2012/89879996 功能:屏幕录制,声卡采集,麦克风采集。 屏幕录制:录制屏幕所有操作,并转换视频格式&…...
前端开发攻略---前端ocr图片文字提取功能
1、引入资源 通过链接引用 <script src"https://cdn.bootcdn.net/ajax/libs/tesseract.js/5.1.0/tesseract.min.js"></script> npm或其他方式下载 npm i tesseract 2、示例 <!DOCTYPE html> <html lang"en"><head><meta…...
平凯星辰亮相 2024开放原子开源生态大会,分享开源教育及社区治理经验
9 月 25-27 日,2024 开放原子开源生态大会在北京成功举办,本次大会以“开源赋能产业,生态共筑未来”为主题,由开放原子开源基金会主办,聚焦地方开源实践、企业开源建设思路,围绕开源生态建设,突…...
OCR经典神经网络(二)文本检测算法DBNet算法原理及其在icdar15数据集上的应用
OCR经典神经网络(二)文本检测算法DBNet算法原理及其在icdar15数据集上的应用 场景文本检测任务,一直以来是OCR整个任务中最为重要的一环。虽然有一些相关工作是端对端的,但是从工业界来看,相关落地应用较为困难。因此,两阶段的OC…...
论文笔记:Prompt-Based Meta-Learning For Few-shot Text Classification
论文来源:EMNLP 2022 论文地址:2022.emnlp-main.87.pdf (aclanthology.org) 代码地址:GitHub - MGHZHANG/PBML GB/T 7714 Zhang H, Zhang X, Huang H, et al. Prompt-Based Meta-Learning For Few-shot Text Classification[C]//Proceedi…...
光耦知识分享 | AC晶体管光耦在照明控制领域的应用与选型推荐
随着智能建筑与智能家居技术的迅猛崛起,照明控制技术亦随之日新月异。传统的照明控制手段已难以适应现代化、智能化的新需求。在这样的技术革新浪潮中,AC晶体管光耦以其卓越的性能和可靠性,成为了照明控制领域中不可或缺的一环。AC晶体管光耦…...
AI率太高被退稿?这5款工具帮你稳过查重+降AI双关!
🔥 2026实测推荐:5款真正管用的工具1️⃣ 毕业之家 AI(毕业季救星)AI率效果:<8%亮点:专为国内高校定制,自动适配学校格式要求,连页眉页脚都不用手调价格:本科套餐199元…...
如何用智能工具提升暗黑破坏神3战斗效率:D3KeyHelper全功能指南
如何用智能工具提升暗黑破坏神3战斗效率:D3KeyHelper全功能指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 暗黑破坏神3的战斗节奏快…...
SenseVoice-Small ONNX标点评测:CT-Transformer在不同文本长度下的F1值
SenseVoice-Small ONNX标点评测:CT-Transformer在不同文本长度下的F1值 1. 引言 语音识别技术已经深入到我们工作和生活的方方面面,从手机语音助手到会议纪要自动生成,都离不开它的身影。然而,对于很多开发者和小型团队来说&…...
XL6008直流升压电路设计与应用详解
1. 直流升压电路设计详解1.1 应用背景与需求分析便携式电子设备在现代生活中扮演着越来越重要的角色,从手持扫码设备到数码相机闪光灯,这些设备对电源系统提出了特殊要求。由于便携性限制,设备通常采用单节或少量电池供电,导致输出…...
Verilog握手信号实战:如何用valid/ready搭建高效数据流水线(附完整代码)
Verilog握手信号实战:如何用valid/ready搭建高效数据流水线(附完整代码) 在FPGA开发中,数据流水线是实现高性能计算的关键架构。但当我们面对不同处理速度的模块时,如何确保数据既不丢失又不阻塞?valid/rea…...
基于RexUniNLU的Linux系统日志智能分析方案
基于RexUniNLU的Linux系统日志智能分析方案 1. 引言 每天面对海量的Linux系统日志,是不是感觉头大?服务器突然卡顿,排查问题就像大海捞针,一行行翻日志看得眼睛都花了。传统的关键词搜索和正则匹配已经跟不上现代运维的需求&…...
BilibiliDown:让音乐爱好者实现Hi-Res音频提取的全流程方案
BilibiliDown:让音乐爱好者实现Hi-Res音频提取的全流程方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirr…...
OpenClaw多模型对比:ollama-QwQ-32B与云端API在自动化任务中的表现
OpenClaw多模型对比:ollama-QwQ-32B与云端API在自动化任务中的表现 1. 测试背景与实验设计 去年冬天,当我第一次尝试用OpenClaw自动化处理堆积如月的合同文件时,面对本地部署和云端API两种选择,陷入了典型的"技术选择困难症…...
BilibiliCommentScraper:革新性全量数据采集的技术突破方案
BilibiliCommentScraper:革新性全量数据采集的技术突破方案 【免费下载链接】BilibiliCommentScraper 项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper 在当今数据驱动决策的时代,高效采集方案与完整数据获取已成为内容分析…...
本地部署开源推送通知系统 ntfy 并实现外部访问
ntfy 是一款简单、轻量级且功能强大的开源推送通知系统,它的核心目标是让用户或开发者能够轻松地从任何设备、任何地方向自己的手机或桌面发送通知。本文将详细介绍如何在 Linux 系统局域网内部署 ntfy 并结合路由侠实现外网访问局域网内部署的 ntfy 。 第一步&…...
