首页/新闻资讯/正文详情

顺序队列的基本操作

发布时间:2026/9/23 22:29:22 来源:云帆数科 栏目:资讯中心
顺序队列的基本操作
/* 修复后的标准代码请直接复制这段 */#include stdio.h#include stdlib.h#define MaxSize 10typedef int ElemType;/* 队列的结构体定义 */typedef struct {ElemType *data;int front;int rear;} SqQueue;/* 构造一个空队列 */void InitQueue(SqQueue *Q) {Q-data (ElemType*)malloc(MaxSize * sizeof(ElemType));if (!Q-data) exit(0);Q-front Q-rear 0;}/* 销毁队列 */void DestroyQueue(SqQueue *Q) {if (Q-data) free(Q-data);Q-data NULL;Q-front Q-rear 0;}/* 将队列Q清空 */void ClearQueue(SqQueue *Q) {Q-front Q-rear 0;}/* 判断队列是否为空 */int QueueEmpty(SqQueue Q) {if (Q.front Q.rear) return 1;else return 0;}/* 如果队列不空用e返回Q的队头元素 */int GetHead(SqQueue Q, ElemType *e) {if (Q.front Q.rear) return 0;*e Q.data[Q.front];return 1;}/* 插入元素e为队列新的队尾元素 */int EnQueue(SqQueue *Q, ElemType e) {if (Q-rear MaxSize) return 0; /* 队列满 */Q-data[Q-rear] e; /* 将e插在队尾 */Q-rear Q-rear 1; /* 队尾指针加1 */return 1;}/* 返回队列元素的个数 */int QueueLength(SqQueue Q) {return (Q.rear - Q.front);}/* 若队列不空则删除Q的队头元素由e返回其值 */int DeQueue(SqQueue *Q, ElemType *e) {if (Q-front Q-rear) return 0;*e Q-data[Q-front]; /* 将队头元素的值赋给e */Q-front Q-front 1;return 1;}/* 从队头到队尾对队列Q中的每个元素进行输出 */void QueueTraverse(SqQueue Q) {int i Q.front;while (i ! Q.rear) {printf(%2d , Q.data[i]);i i 1;}printf(\n);}/* 主函数 */int main() {int i, m, k, n;ElemType d;SqQueue Q;InitQueue(Q);printf(请输入队列中的%d个元素:\n, MaxSize);for (i 1; i MaxSize; i) {scanf(%d, d);if (d 0) break;EnQueue(Q, d);}printf(当前队列为: );QueueTraverse(Q);printf(判断队列长度: %d\n, QueueLength(Q));k QueueLength(Q);printf(连续%d次由队头删除元素由队尾插入元素:\n, k / 2);for (m 1; m k / 2; m) {DeQueue(Q, d);printf(删除的元素是%d, 请输入要插入的元素: , d);scanf(%d, d);EnQueue(Q, d);}printf(新队列为: );QueueTraverse(Q);n GetHead(Q, d);if (n) {printf(提取队头元素的值: %d\n, d);}printf(清空队列\n);ClearQueue(Q);printf(清空队列后队列是否为空 n%d (1,为空; 0,不为空)\n, QueueEmpty(Q));return 0;}

相关推荐

PocketFlow Hello World 实战:用 Node 与 Flow 搭建你的第一个 LLM 应用
PocketFlow Hello World 实战:用 Node 与 Flow 搭建你的第一个 LLM 应用

PocketFlow Hello World 实战:用 Node 与 Flow 搭建你的第一个 LLM 应用 【免费下载链接】PocketFlow Pocket Flow: 100-line LLM framework. Let Agents build Agents! 项目地址: https://gitcode.com/gh_mirrors/poc/PocketFlow 本篇技术指南以 PocketFlow… · 2026/9/23 22:29:22

CNN卷积神经网络Matlab手写实现:从卷积到反向传播的完整指南
CNN卷积神经网络Matlab手写实现:从卷积到反向传播的完整指南

简介:面向计算机视觉初学者与Matlab深度学习用户,这份压缩包提供完整的CNN手写数字识别实例。内容涵盖基于LeNet架构的Matlab实现,从卷积层、池化层、全连接层到ReLU激活函数的逐层配置,并完整演示MNIST数据集的导入、训练、评估与… · 2026/9/23 22:29:15

算法竞赛补题解析:牌面得分与数字反转问题
算法竞赛补题解析:牌面得分与数字反转问题

1. 训练赛补题背景与赛况回顾作为大二寒假期间参加牛客寒假训练赛的选手,我的水平在参赛选手中属于中上等。每场比赛后,我都会把那些有能力解决但比赛时没能完成的题目进行补题。这次是第一场训练赛的补题记录,我选择了B题和G题两道题目进行深… · 2026/9/23 22:29:15

uv工具:Python开发者的效率革命与实战指南
uv工具:Python开发者的效率革命与实战指南

1. 初识uv:Python开发者的效率革命第一次听说uv这个工具时,我正在为一个跨平台Python项目焦头烂额。当时需要同时管理多个虚拟环境,处理不同版本的依赖冲突,还要确保团队成员的开发环境一致。传统的venvpip组合虽然能用&#xff0… · 2026/9/23 22:59:53

IPFS+以太坊+属性基加密:构建可审计的安全数据共享方案
IPFS+以太坊+属性基加密:构建可审计的安全数据共享方案

简介:基于星际文件系统、以太坊与属性加密技术的区块链安全数据共享系统设计源码,是一套面向区块链研发人员与高安全数据管理场景的完整工程实现。该项目将去中心化存储、以太坊智能合约与细粒度访问控制相结合,解决数据共享中的安全与权限管… · 2026/9/23 22:59:46

插件系统架构设计与开发实践指南
插件系统架构设计与开发实践指南

1. 插件开发架构的本质思考插件系统的核心价值在于扩展性。一个优秀的插件架构应该像乐高积木一样,允许第三方开发者在不修改主程序代码的前提下,为系统添加新功能。我在参与多个大型软件系统的插件开发时,发现成熟的插件架构通常包含以下关键… · 2026/9/23 22:59:46

大圆航线与测地线:Haversine和Vincenty公式详解
大圆航线与测地线:Haversine和Vincenty公式详解

打开航旅App看北京飞洛杉矶的航班,航线不是一条穿过太平洋的直线,而是向北绕一圈,经过俄罗斯远东、白令海,最后再沿北美西海岸南下。第一次看到的人多半以为飞机在绕远,其实这才是真正的近路。地球是圆的,地… · 2026/9/23 22:59:40

小波分解原理与电机振动去噪实战指南
小波分解原理与电机振动去噪实战指南

简介:本资源是一份面向信号处理初学者与工程实践者的MATLAB小波分解入门脚本,聚焦含噪信号的多尺度分析与去噪实现。内容涵盖小波基选择(如Daubechies系列)、小波系数计算、阈值去噪策略及逆变换信号重构等核心流程,适… · 2026/9/23 22:59:28

Matlab实现的可解释MBRL空间导航系统
Matlab实现的可解释MBRL空间导航系统

简介:本资源是一套面向计算机、电子信息工程及数学等专业本科生的强化学习实践代码包,聚焦空间导航这一典型AI应用场景,提供基于模型的强化学习(MBRL)Matlab实现方案,适用于课程设计、期末大作业与毕业设计… · 2026/9/23 22:59:28

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码