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

数据结构笔记(C++,队列的基本操作代码)

发布时间:2026/9/26 11:09:32 来源:云帆数科 栏目:资讯中心
数据结构笔记(C++,队列的基本操作代码)
队列特点先进先出或者后进后出主要操作1、顺序队列顺序队列有两个状态队空、队满两个操作入队、出队。定义typedef struct{ int data[MaxSize]; int front; int rear; }SqQueue;初始化void InitQueue(SqQueue qu){ qu.frontqu.rear0;//队首队尾指针重合并指向0 }判空int QueueEmpty(SqQueue qu){ if(qu.frontqu.rear)return 1;//不论队首队尾指针指向数组中的哪个位置 else return 0; //只要两者重合即为队空 }入队//先移动指针再移动元素 int enQueue(SqQueue qu,int x){ if((qu.rear1)%MaxSizequ.front)return 0;//判满满就不能入队 qu.rear(qu.rear1)%MaxSize;//若不满则先移动指针 qu.data[qu.rear]x;//再存入元素 return 1; }出队int deQueue(SqQueue qu,int x){ if(qu.frontqu.rear)return 0;//若队空则不能入队 qu.front(qu.front1)%MaxSize;//若队不空先移动指针 xqu.data[qu.front]; return 1; }提醒这些函数在考研程序题中并不实用需要在题目中提取其中有用的操作。2、链队链队的特点是不存在队列满上溢的情况这里用单链表实现。两个状态队空、队满两个操作入队、出队。节点定义typedef struct QNode{ int data; struct QNode *next; }QNode;类型定义typedef struct{ QNode *front; QNode *rear; }LiQueue;初始化int InitQueue(LiQueue *lqu){ lqu(LiQueue*)malloc(sizeof(LiQueue)); lqu-frontlqu-rearNULL; }判空int QueueEmpty(LiQueue *lqu){ if(lqu-rearNULL||lqu-frontNULL)return 0; else return 1; }入队void enQueue(LiQueue *lqu,int x){ QNode *p; p(QNode*)malloc(sizeof(QNode)); p-datax; p-nextNULL; if(lqu-rearNULL){ //若队列为空 lqu-frontlqu-rearp;//则新结点是队首结点也是队尾结点 } else { lqu-rear-nextp;//否则将新结点链接到队尾rear指向它 lqu-rearp; } }出队int deQueue(LiQueue *lqu,int x){ QNode *p; if(lqu-rearNULL)return 0;//队空不能出栈 else{ plqu-front; } if(lqu-frontlqu-rear){//队列中只有一个结点时的出队操作需要特殊处理 lqu-frontlqu-rearNULL; } else{ lqu-frontlqu-front-next; } xp-data; free(p); return 1; }提醒1以上算法不需要记忆读懂并能够理解即可2考研中尽量用顺序队列避免用链队除非明确规定。假溢出什么是假溢出假溢出是指队列用的空间还未满但尾指针却移动到末尾不能继续入队的现象。如何解决假溢出1直接申请一块足够大的数组让rear永远不会触达数组尾部。2每当出队把队列中所有有效元素整体向前移动让front始终保持在数组下标 0 的位置。3把一维数组逻辑上看成环形利用取模运算%当rear走到数组末尾时绕回到数组开头复用前面闲置的空间循环队列方法队空frontrear队满(rear1)%Mfront。

相关推荐

DeepSeek提纲扩写后维普AI率仍高:BunnyScholar长文档修改方法
DeepSeek提纲扩写后维普AI率仍高:BunnyScholar长文档修改方法

DeepSeek提纲扩写后维普AI率仍高:BunnyScholar长文档修改方法“我发誓正文全是我通宵一个字一个字码出来的!前几天写第三章实证背景,我只是让 DeepSeek 给出了一个四级研究提纲,然后我完全按照提纲的条目,自己去查知网… · 2026/9/26 11:09:26

极客日报#2025
极客日报#2025

极客日报#2025 本期收录 Xanadu Was Waiting for AgentsPasskeys 还不够成熟次正规浮点数在 Intel 处理器上的性能问题 本期整理编辑:Harry。 本期推荐 1. Xanadu Was Waiting for Agents 推荐人:Cedric链接:https://zed.dev/blog/agentic-xa… · 2026/9/26 11:09:26

cursor.description 到底长啥样:TaoToken 统一 Key 下抓一次真实返回结构
cursor.description 到底长啥样:TaoToken 统一 Key 下抓一次真实返回结构

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:09:26

监控镜头选型指南:焦距、视场角、靶面、接口与光圈全解析
监控镜头选型指南:焦距、视场角、靶面、接口与光圈全解析

1. 选镜头这件事,参数表不会告诉你的那些事 很多人第一次配监控或者做机器视觉项目,拿到一份镜头规格书就懵了。焦距、视场角、靶面、接口、光圈,五个词摆在一起,每个字都认识,连起来就不知道该怎么选了。更麻烦的是&a… · 2026/9/26 11:39:12

podofo-0.9.6 加 VS2013 编译实战:依赖配置与避坑指南
podofo-0.9.6 加 VS2013 编译实战:依赖配置与避坑指南

简介:本资源为已成功编译的podofo-0.9.6源码包,面向需要在Windows平台进行PDF解析与编辑开发的C工程师及学习者。podofo是功能强大且完善的开源PDF操作库,支持文档读取、内容修改、页面处理等常见需求,配合VS2013环境可直接调用&a… · 2026/9/26 11:39:12

Linux安装与程序管理全指南:从虚拟机到Docker实战
Linux安装与程序管理全指南:从虚拟机到Docker实战

1. 安装方式选型:不盲目折腾,先把路子选对我接触Linux这些年,发现一个特别有意思的现象:大多数人卡住的地方根本不是命令记不住,也不是配置看不懂,而是从一开始就把安装方式选错了,导致后面所有… · 2026/9/26 11:39:12

期刊要求的结构化摘要,怎么拆才顺
期刊要求的结构化摘要,怎么拆才顺

投稿系统里把摘要字段拆成背景、方法、结果、结论四栏,是不少期刊的硬性要求。很多人写惯了连续段落的传统摘要,一动笔就发现四节越拆越散,读起来像四段互不相干的文字。这篇把拆法从头捋一遍:常见误区、按读者提问顺序的排法、分… · 2026/9/26 11:39:12

百度网盘直链解析全攻略:告别限速,原理与工具实操详解
百度网盘直链解析全攻略:告别限速,原理与工具实操详解

用过百度网盘的朋友应该都有过这种体验:分享链接就在眼前,点开下载按钮,进度条却以几十KB/s的速度蠕动,客户端还要先排队等任务。于是“百度网盘解析”“百度网盘直链解析在线”这类词常年挂在搜索框里,大家的需求其实… · 2026/9/26 11:39:06

AI驱动 · 智造升级 | 从插件生成到智能体构建:MCP协议全场景应用实践与TaoToken统一接入
AI驱动 · 智造升级 | 从插件生成到智能体构建:MCP协议全场景应用实践与TaoToken统一接入

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:39:00

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

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

企业微信二维码