数据结构:队列

目录

1.队列:

2.队列的实现(以顺序循环队列为例)

3.队列的实现(以链式循环队列为例)


1.队列**:**

1.栈、队列和表的区别:

队列:一种先进先出,后进后出的数据结构

栈:一种先进后出,后进先出的数据结构

栈和队列是一种特殊(操作受限制)的表状结构

栈和队列只能在指定的位置插入和删除

链表可以在任意位置插入和删除

应用:栈对应深度优先;队列对应广度优先

2.队列的相关概念:

队头:出队的一端,可用int型head或者int*型head标识(顺序队列:对头尾指针均只增加不减小。循环队列:一旦头指针增1或尾指针增1 时超出了所分配的队列空间,就让它指向这片连续空间的起始位置。)

队尾:入队的-端

出队:数据从队列中取出

入队:数据向队列中插入

空队列:队列中没有元素的队列(当 head=tail 时,队列中没有任何元素,为空队列)

3.队列的分类

顺序(循环)队列

链式(循环)队列

2.队列的实现(以顺序循环队列为例)

队列的基本运算

①初始化队列(创建空队列):SeqQueue_t *CreateSeqQueue(int len);

②入队操作: int EnterSeqQueue(SeqQueue_t *pTmpQueue, DataType TmpData);

③出队操作:DataType QuitSeqQueue(SeqQueue_t *pTmpQueue);

④读队头元素:DataType FindSeqQueue(SeqQueue_t *pTmpQueue);

⑤判满: int IsFullSeqQueue(SeqQueue_t *pTmpQueue);

判空:int IsEmptySeqQueue(SeqQueue_t *pTmpQueue);

⑥队列的销毁:int DestroySeqQueue(SeqQueue_t **ppTmpQueue);

①数据类型定义

示意图


②创建一个空队列

③入队

④出队

⑤判空

⑥判满

⑦销毁

3.队列的实现(以链式循环队列为例)

队列的基本运算

①初始化队列(创建空队列):Node_t *CreateEmptyLinkQueue(void);

②入队操作: int EnterLinkQueue(Node_t *pTmpQueue, DataType TmpData);

③出队操作:DataType QuitLinkQueue(Node_t *pTmpQueue);

④读队头元素:DataType FindSeqQueue(SeqQueue_t *pTmpQueue);

⑤判队空操作:int IsEmptyLinkQueue(Node_t *pTmpQueue);

⑥队列的销毁:int DestroyLinkQueue(Node_t **ppTmpQueue);

复制代码
 

①数据类型定义


②创建一个空队列

③入队

④出队


⑤判空

⑦销毁

相关推荐
geovindu17 分钟前
go: Visitor Pattern
开发语言·设计模式·golang·访问者模式
宣宣猪的小花园.19 分钟前
C语言重难点全解析:内存管理到位运算
c语言·开发语言·单片机
方安乐4 小时前
python之向量、向量和、向量点积
开发语言·python·numpy
三品吉他手会点灯6 小时前
C语言学习笔记 - 20.C编程预备计算机专业知识 - 变量为什么必须的初始化【重点】
c语言·笔记·学习
Old Uncle Tom6 小时前
OpenClaw 记忆系统 -- 记忆预加载
java·数据结构·算法·agent
会编程的土豆6 小时前
洛谷题单入门1 顺序结构
数据结构·算法·golang
小小小米粒6 小时前
Collection单列集合、Map(Key - Value)双列集合,多继承实现。
java·开发语言·windows
czhc11400756637 小时前
C# 428 线程、异步
开发语言·c#
:1217 小时前
java基础
java·开发语言
SilentSamsara8 小时前
Python 环境搭建完整指南:从下载安装到运行第一个程序
开发语言·python