首页 > 代码库 > 【数据结构第二周】队列知识点整理
【数据结构第二周】队列知识点整理
队列(Queue):具有一定操作约束的线性表
插入和删除操作:只能在一端插入,而在另一端删除
先进先出
1、队列的顺序存储实现
队列的顺序存储结构通常由一个一维数组和一个记录队列头元素位置的变量front以及
一个记录队列尾元素位置的变量rear组成
(1)初始化
#define MaxSize <储存数据元素的最大个数> typedef struct { ElementType Data[ MaxSize ]; int rear; int front;} Queue;
(2)入队列
void AddQ( Queue *PtrQ, ElementType item) { if ( (PtrQ->rear+1) % MaxSize == PtrQ->front ) { printf(“队列满”); return; } PtrQ->rear = (PtrQ->rear+1)% MaxSize; PtrQ->Data[PtrQ->rear] = item;}
Front和rear指针的移动采用”加一取余“法,体现了顺序存储的”循环使用“。
(3)出队列
ElementType DeleteQ ( Queue *PtrQ ) { if ( PtrQ->front == PtrQ->rear ) { printf(“队列空”); return ERROR; } else { PtrQ->front = (PtrQ->front+1)% MaxSize; return PtrQ->Data[PtrQ->front]; } }
【数据结构第二周】队列知识点整理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。