<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>
时间: 2024-12-29 23:41:15