news 2026/8/29 20:23:45

数据结构-队列(链式队列)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据结构-队列(链式队列)

数据结构中的链式队列

链式队列是一种基于链表实现的队列数据结构,采用先进先出(FIFO)的原则。与顺序队列不同,链式队列通过动态分配内存存储元素,避免了固定容量限制。

链式队列的特点

  • 动态扩容:无需预先分配固定内存空间,适合元素数量变化大的场景。
  • 避免假溢出:顺序队列可能因数组空间不足导致假溢出,链式队列无此问题。
  • 操作效率:入队和出队操作的时间复杂度均为O(1)。

链式队列的实现代码

/*队列(线性结构)是数据结构中的一种逻辑结构,属于操作受限的线性表, 其存储结构(物理结构)使其表现为"循环队列"和"链式队列", 以下为链式队列的 C++ 代码实现*/ #include<iostream> using namespace std; #define ElemType int #define MaxSize 50//定义队列中元素的最大个数 typedef struct LinkNode{ //链式队列结点 ElemType data; struct LinkNode *next; }LinkNode; typedef struct{ //链式队列 LinkNode *front,*rear; //队列的队头和队尾指针 }LinkQueue; void InitQueue(LinkQueue &Q) { //初始化带头结点的链式队列 // Q.front=Q.rear=(LinkNode*)malloc(sizeof(LinkNode)); Q.front=Q.rear=new LinkNode;//建立头结点 Q.front->next=NULL; //初始为空 } bool QueueEmpty(LinkQueue Q) { if(Q.front==Q.rear) //判空条件 return true; else return false; } void EnQueue(LinkQueue &Q,ElemType x) {//入队 //C: LinkNode *s=(LinkNode *)malloc(sizeof(LinkNode)); LinkNode *s=new LinkNode;//创建新结点 s->data=x; s->next=NULL; Q.rear->next=s; //插入链尾 Q.rear=s; //修改尾指针 } bool DeQueue(LinkQueue &Q,ElemType &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; //C: free(p); delete p; return true; } int main(){//测试代码合理即可 LinkQueue Q; ElemType x; InitQueue(Q); // 初始化 // 入队:1、2、3 cout<<"顺序入队1,2,3"<<endl; EnQueue(Q,1); EnQueue(Q,2); EnQueue(Q,3); // 出队(先进先出) cout<<"出队"<<endl; while(DeQueue(Q,x)){ cout<<x<<endl; } // 判空 cout<<"队列是否为空:"<<(QueueEmpty(Q) ? "是" : "否")<<endl; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 17:13:41

AI教材生成神器,低查重率保障,快速完成教材创作!

在编写教材的过程中&#xff0c;如何精准满足不同的需求成为了一大挑战。不同年级的学生在认知水平上存在明显差异&#xff0c;内容过于复杂或过于简单都不可行&#xff1b;教师在课堂教学、自主学习等各类场景中对教材的要求各异&#xff0c;这就需要教材的呈现方式灵活多变。…

作者头像 李华
网站建设 2026/7/14 17:13:40

政企智能信创办公解决方案

一、方案总则1.方案背景国家信创战略深化推进&#xff0c;“自主可控、安全可信”成为政企数字化转型核心底线。当前政企信创办公落地面临三大痛点&#xff1a;软硬件兼容性不足、核心数据安全风险突出、智能化与协同效率偏低。本方案以“信创为基、智能为核、安全为要、协同为…

作者头像 李华
网站建设 2026/7/14 17:13:53

自然语言处理与AI编程助手:从四大名著到未来应用

引言自然语言处理&#xff08;NLP&#xff09;是人工智能领域的一颗明珠&#xff0c;它让计算机能够理解、解释和生成人类语言。无论是分析古典文学&#xff0c;还是与智能助手对话&#xff0c;NLP都在悄然改变我们的生活。本文将从三个角度展开&#xff1a;首先&#xff0c;通…

作者头像 李华
网站建设 2026/7/14 17:13:53

项目管理核心方法:以终为始,管事管人

以终为始 做任何项目或事情&#xff0c;切忌盲目启动&#xff0c;核心是“以终为始”——先想清楚这件事的来龙去脉&#xff0c;在脑海中搭建完整框架&#xff0c;再通过项目画布全面拆解核心问题&#xff0c;明确“为什么做、怎么做、如何落地”&#xff0c;避免走弯路、做无用…

作者头像 李华
网站建设 2026/7/14 17:13:54

大模型 之 存储推理优化:Anchor 向量机制深度解析

文章目录1. 背景与挑战&#xff1a;KVCache 检索的算力瓶颈2. 核心机制&#xff1a;Anchor 向量的维度之谜现象&#xff1a;维度的“错位”Anchor 向量长什么样&#xff1f;3. 直观理解&#xff1a;从“乱袜堆”到“智能分类柜”场景 A&#xff1a;没有 Anchor 的传统检索&…

作者头像 李华