首页 > 心得体会 > 工作体会 / 正文
C语言循环队列表示与实例详解
2023-02-22 08:20:07 ℃1.概述:C语言的队列(queue),是先进先出(FIFO,First-In-First-Out)的线性表数据结构。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插下面是小编为大家整理的C语言循环队列表示与实例详解,供大家参考。
1.概述:
C语言的队列(queue),是先进先出(FIFO, First-In-First-Out)的线性表数据结构。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。
循环队列可以更简单的防止伪溢出的发生,但是队列大小是固定的。
2.实例代码:
/* 队列的顺序存储结构循环队列 */#define MAX_QSIZE 5 /* 最大队列长度+1 */typedef struct QElemType *base; /* 初始化的动态分配存储空间 */ int front; /* 头指针,若队列不空,指向队列头元素 */ int rear; /* 尾指针,若队列不空,指向队列尾元素的下一个位置 */SqQueue;/* 循环队列的基本操作9个 */void InitQueueSqQueue *Q /* 构造一个空队列Q */ Q->base=mallocMAX_QSIZE*sizeofQElemType; if!Q->base /* 存储分配失败 */ exitOVERFLOW; Q->front=Q->rear=0;void DestroyQueueSqQueue *Q /* 销毁队列Q,Q不再存在 */ ifQ->base freeQ->base; Q->base=NULL; Q->front=Q->rear=0;void ClearQueueSqQueue *Q /* 将Q清为空队列 */ Q->front=Q->rear=0;Status QueueEmptySqQueue Q /* 若队列Q为空队列,则返回TRUE;否则返回FALSE */ ifQ.front==Q.rear /* 队列空的标志 */ return TRUE; else return FALSE;int QueueLengthSqQueue Q /* 返回Q的元素个数,即队列的长度 */ returnQ.rear-Q.front+MAX_QSIZE%MAX_QSIZE;Status GetHeadSqQueue Q,QElemType *e /* 若队列不空,则用e返回Q的队头元素,并返回OK;否则返回ERROR */ ifQ.front==Q.rear /* 队列空 */ return ERROR; *e=Q.base[Q.front]; return OK;Status EnQueueSqQueue *Q,QElemType e /* 插入元素e为Q的新的队尾元素 */ ifQ->rear+1%MAX_QSIZE==Q->front /* 队列满 */ return ERROR; Q->base[Q->rear]=e; Q->rear=Q->rear+1%MAX_QSIZE; return OK;Status DeQueueSqQueue *Q,QElemType *e /* 若队列不空,则删除Q的队头元素,用e返回其值,并返回OK;否则返回ERROR */ ifQ->front==Q->rear /* 队列空 */ return ERROR; *e=Q->base[Q->front]; Q->front=Q->front+1%MAX_QSIZE; return OK;void QueueTraverseSqQueue Q,void*viQElemType /* 从队头到队尾依次对队列Q中每个元素调用函数vi */ int i; i=Q.front; whilei!=Q.rear viQ.base[i]; i=i+1%MAX_QSIZE; printf"n";
猜你喜欢
- 2024-01-19 2024年“金融工作”金句汇编(500句)
- 2024-01-19 在全县营商环境建设工作领导小组会议暨深化“放管服”改革推进工作会议上讲话(2024年)
- 2024-01-19 2024年度乡,工作总结及2024年工作谋划(完整)
- 2024-01-18 妇联工作总结报告
- 2024-01-18 2024年XX县XX乡工作总结暨2024年重点工作安排
- 2024-01-18 2024年度区人社局工作总结和2024年工作安排
- 2024-01-18 2024年度县公安局工作总结暨2024年工作谋划
- 2024-01-18 乡工作总结和2024年工作谋划
- 2024-01-17 2024年度(2篇)工作总结暨2024年工作打算汇编(范文推荐)
- 2024-01-17 2024年度XX乡工作回顾及2024年工作安排(完整)
- 搜索
-
- 84消毒液的使用方法及配比 08-31
- 组织生活会全部流程 06-12
- 2023年个人放生必念口诀3篇【完整版】 01-24
- abaqus常用技巧总结 07-02
- 对司法局的意见和建议 基层司法行政工 12-19
- 个人如何做好意识形态工作 12-16
- 2023年《奔落雪原》阅读答案3篇【完整 03-06
- 国际航班乘机基本流程3篇 01-30
- 2020-2021年党组书记四季度全面从严治 11-20
- 大学生职业生涯规划书前言【10篇】 01-20
- 11-25国庆70周年庆典晚会 庆典晚会串词
- 11-25办公室礼仪的十大原则 浅谈办公室的电话礼仪
- 01-17用心灵轻轻地歌唱_心灵的歌唱
- 01-17也许你不是我一生的唯一|也许不是我
- 01-17爱了,请珍惜;不爱,趁早放手|爱就珍惜不爱就放手
- 01-17岁月带走的是记忆,但回忆会越来越清晰|有趣又有深意的句子
- 01-17曾经的美好只是曾经,我只想珍惜身边的人|我只想珍惜你
- 01-18从容不惊 [学会笑眼去看世界,不惊不乍,淡定从容]
- 02-03当代大学生学习态度调查报告
- 02-03常用护患英语会话
- 标签列表