写出循环列队存储结构的c语言描述
循环队列的C语言描述如下:
c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 // 定义队列的最大长度
typedef struct {
int front; // 队头指针
int rear; // 队尾指针
int size; // 队列中元素个数
int data[MAXSIZE]; // 队列中元素的数组
} CircularQueue;
// 初始化循环队列
void initQueue(CircularQueue *q) {
q->front = q->rear = 0;
q->size = 0;
}
// 判断队列是否为空
int isEmpty(CircularQueue *q) {
return q->size == 0;
}
// 判断队列是否已满
int isFull(CircularQueue *q) {
return q->size == MAXSIZE;
}
// 入队操作
void enqueue(CircularQueue *q, int value) {
if (isFull(q)) {
printf("Queue is full.\n");
return;
}
q->data[q->rear] = value;
q->rear = (q->rear + 1) % MAXSIZE;
q->size++;
}
// 出队操作
int dequeue(CircularQueue *q) {
if (isEmpty(q)) {
printf("Queue is empty.\n");
return -1; // 返回一个特殊值表示出队失败
}
int value = q->data[q->front];
q->front = (q->front + 1) % MAXSIZE;
q->size--;
return value;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论