首页 > 代码库 > 循环队列的实现
循环队列的实现
<span style="font-size:18px;">#include<stdio.h> #define MaxQueueSize 15 typedef int DataType; typedef struct{ DataType queue[MaxQueueSize]; int rear;//队列指针 int front;//对头指针 int count;//计数器 }SeqCQueue; //初始化 void QueueInitiate(SeqCQueue *q){//初始化顺序循环队列q q->count=0;//定义初始计数器 q->rear=0;//定义初始队尾指针下标 q->front=0;//定义初始对头指针标 } //非空 int QueueNotEmpty(SeqCQueue q){ //判断顺序循环队列q非空否,非空则返回1,否则返回0 if(q.count!=0){ return 1; }else{ return 0; } } //入队列 int QueueAppend(SeqCQueue *q,DataType x){ //把数据元素值x插入顺序循环队列q的队尾,成功则返回1,失败返回0 if(q->count>0&&q->rear==q->front){//队满判断 printf("队列已满无法插入!!\n"); return 0; }else{ q->queue[q->rear]=x;//数据元素x插入队尾 q->rear=(q->rear+1)%MaxQueueSize;//队尾指示器加1 q->count++;//计数器加1 return 1;//返回1 } } //出队列 int QueueDelete(SeqCQueue *q,DataType *d){ //删除顺序循环队列q的队头元素并赋给d,成功返回1,失败则返回0 if(q->count==0){//对空判断 printf("队列已空无数据元素出队列!!\n"); return 0; }else{ *d=q->queue[q->front];//取对头元素存入d中 q->front=(q->front+1)%MaxQueueSize;//对头指示器加1 q->count--;//计算器减一 } } //取对头数据元素 int QueueGet(SeqCQueue q,DataType *d){ //取顺序循环队列q的当前对头元素并赋给d,成功则返回1,失败则返回0 if(q.count==0){ printf("队列已空,无数据元素可以取!!\n"); return 0; }else{ *d=q.queue[q.front]; return 1; } } void main(){ }</span>
循环队列的实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。