首页 > 代码库 > 循环队列
循环队列
利用线性表实现队列,为了有效利用空间,将其设计为循环结构,防止假溢出;牺牲一个存储单元以区分队空、队满。
设front队头,rear队尾,N为顺序表大小
队空:rear==front
设front队头,rear队尾,N为顺序表大小
队空:rear==front
队满:(rear+1)%N==front
#include<stdio.h> #define Elemtype int #define N 100 struct Queue { Elemtype data[N]; int front,rear; }; void initQueue(Queue &Q) { Q.rear=Q.front=0; } int enQueue(Queue &Q,Elemtype x) { if((Q.rear+1)%N==Q.front)return 0; Q.rear=(Q.rear+1)%N; Q.data[Q.rear]=x; return 1; } int deQueue(Queue &Q,Elemtype &x) { if(Q.rear==Q.front)return 0; Q.front=(Q.front+1)%N; x=Q.data[Q.front]; return 1; } int main() { Queue Q; initQueue(Q); enQueue(Q,12); enQueue(Q,2); Elemtype x; deQueue(Q,x); printf("%d",x); return 0; }
循环队列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。