循环队列c语言版
一、循环队列结构体
typedef int QueueDataType;
#define CQ_MAX_SIZE 10typedef struct CircularQueue
{QueueDataType data[CQ_MAX_SIZE];/**标记队列首*/QueueDataType head;/**标记队列尾部*/QueueDataType rear;} CircularQueue;
二、循环队列操作函数声明
/**创建队列*/
CircularQueue* create_circular_queue();/**队列是否已满*/
bool isFull(CircularQueue* queue);/**队列是否为空*/
bool isEmpty(CircularQueue* queue);/**入队列*/
bool enqueue(CircularQueue* queue,QueueDataType el);/**出队列*/
QueueDataType dequeue(CircularQueue* queue);/**输出队列*/
void show_queue(CircularQueue* queue);/**销毁队列*/
void destory_queue(CircularQueue* queue);
三、循环队列操作函数定义
/**创建队列*/
CircularQueue* create_circular_queue()
{CircularQueue* queue = (CircularQueue*) malloc(sizeof(CircularQueue));if(queue == NULL){perror("CircularQueue分配内存空间失败");return NULL;}queue->head = 0;queue->rear = 0;return queue;
}/**队列是否为空*/
bool isEmpty(CircularQueue* queue)
{return queue->head == queue->rear;
}/**队列是否已满*/
bool isFull(CircularQueue* queue)
{// rear是冗余出来的一个空间,置于队尾,用于记当前队中元素的个数return (queue->rear + 1)%CQ_MAX_SIZE == queue->head;
}/**入队列*/
bool enqueue(CircularQueue* queue,QueueDataType el)
{if(isFull(queue)){perror("队列已满");return false;}queue->data[queue->rear%CQ_MAX_SIZE] = el ;queue->rear++;return true;
}/**出队列*/
QueueDataType dequeue(CircularQueue* queue)
{if(isEmpty(queue)){perror("对列中暂无元素");return -1;}QueueDataType el = queue->data[queue->head%CQ_MAX_SIZE];queue->head++;return el;
}/**输出队列*/
void show_queue(CircularQueue* queue)
{if(isEmpty(queue)){perror("对列中暂无元素");return ;}int i = queue->head;while ( i < queue->rear){QueueDataType el = queue->data[i%CQ_MAX_SIZE];printf("el=%d\n",el); i++;}
}void destory_queue(CircularQueue* queue)
{free(queue);
}
四、测试队列
void test_cricular_queue()
{CircularQueue *quque = create_circular_queue();QueueDataType arr[] = {11,21,31,41,51,61,71,81,91,101};int i = 0;for(;i<10;i++){enqueue(quque,arr[i]);}show_queue(quque);QueueDataType el = dequeue(quque);printf("取出队列元素el=%d\n",el);destory_queue(quque);
}
运行结果:

相关文章:
循环队列c语言版
一、循环队列结构体 typedef int QueueDataType; #define CQ_MAX_SIZE 10typedef struct CircularQueue {QueueDataType data[CQ_MAX_SIZE];/**标记队列首*/QueueDataType head;/**标记队列尾部*/QueueDataType rear;} CircularQueue; 二、循环队列操作函数声明 /**创建队…...
SprringMVC拦截器
1、拦截器的配置 SpringMVC中的拦截器用于拦截控制器方法的执行 SpringMVC中的拦截器需要实现HandlerInterceptor SpringMVC的拦截器必须在SpringMVC的配置文件中进行配置: <bean class"com.test.interceptor.FirstInterceptor"></bean> …...
redis的实际使用
Redis是一种内存数据库,常用于缓存、会话管理、消息队列等。在项目中合理使用Redis可以提高系统性能和可扩展性。以下是一些使用Redis的建议: 1. 缓存常用数据:将经常使用的数据缓存在Redis中,以减少数据库的读取次数,…...
造车先做三蹦子-之二:自制数据集(5x5数据集)230102
#Jupyter Notebook231001import torch import torch.nn as nn import torch.optim as optim# 定义模型 class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.fc1 = nn.Linear(25, 50)self.fc2 = nn.Linear(50, 6)def forward(self, x):x = x.view(-1, 25…...
JS操作DOM及CSS
JS创造于1994年,其目的是为浏览器显示的文档赋予动态行为。 1 Web编程基础 本节讲解如何编写Web应用中的js程序,如果将这些程序加载到浏览器,以及如何获取输入、产出输出,如何运行响应事件的异步代码。 1.1 js 脚本 虽然现在不…...
Linux内核VFS详解
Linux内核VFS是什么? Linux内核VFS(Virtual File System)是Linux操作系统中的一个关键组件,用于提供文件系统抽象层。它允许用户空间和内核空间的各个部分以一种一致的方式访问不同类型的文件系统,包括磁盘文件系统(如EXT4、XFS、NTFS)、网络文件系统(如NFS、CIFS)、…...
在自己的服务器上部署个人博客和开源项目:实现数字存在感
在数字时代,拥有自己的服务器不再是一项难以实现的任务。通过云计算和开源技术的广泛应用,个人可以轻松地拥有自己的服务器,并在其上部署个人博客以及开源项目,为自己在互联网上创造一个数字存在感。本文将介绍如何在自己的服务器…...
【AI视野·今日Robot 机器人论文速览 第五十九期】Fri, 20 Oct 2023
AI视野今日CS.Robotics 机器人学论文速览 Fri, 20 Oct 2023 Totally 29 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers CCIL: Continuity-based Data Augmentation for Corrective Imitation Learning Authors Liyiming Ke, Yunchu Zhang, Abhay D…...
Chromium浏览器启动参数
文章目录 Chromium浏览器启动参数1. --disable-web-security2. --disable-gpu3. --incognito4. --no-sandbox5. --disable-infobars6. --disable-notifications7. --disable-extensions8. --disable-translate9. --disable-popup-blocking10. --remote-debugging-port=<port…...
【计算机视觉】MoCo v3 讲解
MoCo v3 论文信息 标题:An Empirical Study of Training Self-Supervised Vision Transformers 作者:Xinlei Chen, Saining Xie, Kaiming He 期刊:ICCV 2021 发布时间与更新时间:2021.04.05 2021.04.08 2021.05.05 2021.08.16 主题:计算机视觉、对比学习、MoCo arXiv:[21…...
MySQL - 对字符串字段创建索引
在数据库中,对字符串字段创建索引可以加速字符串字段的查询: 直接创建完整索引:这是最简单的方式,直接对整个字符串字段创建索引。这种方式占用的空间较大,但查询性能通常较好,特别是在精确匹配的情况下。…...
Qt pro文件中 CONFIG += debug 作用
作用 在 Qt 项目文件(.pro 文件)中,CONFIG debug 的作用是指定项目以调试模式进行构建。 当在项目文件中添加 debug 到 CONFIG 变量时,Qt 构建系统将使用调试配置来编译项目。 这意味着编译器将生成带有调试信息的可执行文件&a…...
java解析生成定时Cron表达式工具类
Cron表达式工具类CronUtil 构建Cron表达式 /****方法摘要:构建Cron表达式*param taskScheduleModel*return String*/public static String createCronExpression(TaskScheduleModel taskScheduleModel){StringBuffer cronExp new StringBuffer("");if(…...
庆祝1024
在CSDN1024这一天,我不禁回想起自己这几年来在这个平台上的经历。回忆着初来时的稚嫩,如今的迷茫与期待,我深深地感受到自己还需不断努力。 回想起八年前,我刚刚步入计算机科学与技术的领域,满怀激情地加入了CSDN这个高…...
时间格式记录
ISO 8601:这是一种国际标准的日期和时间表示方式,格式为YYYY-MM-DDTHH:mm:ss.sssZ,其中 YYYY 代表四位数年份,MM 代表月份,DD 代表天数,T 作为日期和时间的分隔符,HH 代表小时,mm 代…...
hive插入动态分区数据时,return code 2报错解决
目录 一、完整报错 二、原因 三、其他 一、完整报错 Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 二、原因 大概率是因为没有开启允许动态分区或单次动态分区个数太小了。 -- 动态分区前…...
解决报错:gnutls_handshake() failed: The TLS connection was non-properly terminated.
执行git clone的时候,出现错误:gnutls_handshake() failed: The TLS connection was non-properly terminated. 如图: 解决方式: 两次重置代理:完美解决 git config --global --unset https.https://github.com.pro…...
《 汇编语言的系统学习》一、编程语言、机器语言与汇编语言
目录 《 汇编语言的系统学习》1、编程语言1.1 语言1.2 程序 2 编程语言分类2.1 机器语言2.2 汇编语言2.3 高级程序语言2.3.1 编译型2.3.1 解释型 《 汇编语言的系统学习》 1、编程语言 1.1 语言 定义:一种系统的,人与人之间通过声音、符号等进行交流的…...
【RocketMQ系列十四】RocketMQ中消息堆积如何处理
您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…...
Ubuntu - sudo apt update 报错源问题解决方案
sudo apt update 报错…lease’ does not have a Release file. 反正就是觉得是网络的问题 尝试添加国内清华源、阿里源 不行 尝试DNS 为8.8.8.8,114.114.114.114 还是不行 解决方案:设置里面让 Ubuntu 找到适合自己的源 1、Settings -> About…...
在快马平台实战演练claude代码技能教程中的完整项目开发流程
今天想和大家分享一个特别实用的学习路径——如何通过InsCode(快马)平台将Claude代码技能教程中的知识转化为真实可运行的项目。最近我跟着教程完整实现了一个博客内容管理系统,整个过程比想象中顺畅很多。 项目规划与功能拆解 Claude教程中提到的博客系统包含8个…...
(论文速读)AFSS :防遗忘采样策略
论文题目:Does YOLO Really Need to See Every Training Image in Every Epoch?(YOLO真的需要查看每个epoch的每个训练图像吗?)会议:CVPR2026摘要:YOLO检测器以其快速的推理速度而闻名,但是训练它们仍然非…...
RVC模型训练全攻略:如何用3分钟打造专属语音模型
RVC模型训练全攻略:如何用3分钟打造专属语音模型 1. 引言:为什么选择RVC? 在当今数字内容创作蓬勃发展的时代,拥有一个独特的语音模型已经成为许多创作者和企业的刚需。RVC(Retrieval-Based Voice Conversion&#x…...
计算机三级嵌入式30天高效备考攻略——从零基础到通关秘籍
1. 零基础如何30天攻克计算机三级嵌入式? 第一次接触计算机三级嵌入式考试的同学,往往会被"嵌入式"三个字吓到。其实这个考试更像是"嵌入式系统知识入门认证",完全不需要硬件开发经验。我当年也是零基础备考,…...
从一线装维经验看,扩展式智能插座更适合多路监测与项目落地
作为一名做了12年现场电气安装与运维的一线装维人员,今天想聊聊智能插座。这些年接触过的智能插座不少,市面上的产品确实五花八门,外观、功能、结构都不一样。选择多了,对用户来说未必是好事,反而更容易挑花眼。尤其一…...
Jupyter notebook打不开本地文件,有关目录存放问题
Jupyter notebook打不开本地文件,有关目录存放问题 基于Anaconda下载后,点击Jupyter notebook无法打开文件目录问题,或者需要更改打开的文件目录,主要解决方法:修改配置文件和路径。 第一步:修改配置文件 打…...
高效批量获取抖音无水印视频:从概念到实战的完整指南
高效批量获取抖音无水印视频:从概念到实战的完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...
无人机数据分析:UAV Log Viewer 技术解析与实践指南
无人机数据分析:UAV Log Viewer 技术解析与实践指南 【免费下载链接】UAVLogViewer An online viewer for UAV log files 项目地址: https://gitcode.com/gh_mirrors/ua/UAVLogViewer 无人机数据分析是提升飞行安全性和任务效率的关键环节。UAV Log Viewer作…...
@Value赋值踩的坑
Spring Boot 配置文件中的科学计数法陷阱 ⚠️ 警惕:YAML 配置中的字符串被误解析为数字的问题 📋 问题场景 1. 配置文件示例 # 测试环境配置 ✅ xunfei:appid: 0e1d789dapisecret: NzE5ZmExxxxxxxTFkNmY1ZWJjZTA1apikey: d228r7t8xxxxxxxc0bebb17e377…...
Webpacker终极集成指南:如何与React、Vue、TypeScript完美协作
Webpacker终极集成指南:如何与React、Vue、TypeScript完美协作 【免费下载链接】webpacker Use Webpack to manage app-like JavaScript modules in Rails 项目地址: https://gitcode.com/gh_mirrors/we/webpacker Webpacker是Rails生态系统中一个革命性的工…...
