#include <stdio.h>
#include <malloc.h>
//循环队列
#define MAXSIZE 10
typedef int sElemType;
typedef struct queue{
sElemType data[MAXSIZE];
int front;
int rear;
}queue;
void init_queue(queue* q) {
q->front = 0;
q->rear = 0;
}
void in_queue(queue* q, sElemType e) {
if ((q->rear + 1) % MAXSIZE == q->front) {
return;//队列已满
}
q->data[q->rear] = e;
q->rear = (q->rear + 1) % MAXSIZE;
}
void out_queue(queue* q, sElemType* e) {
if (q->front == q->rear) {
return; //队列为空
}
*e = q->data[q->front];
q->front = (q->front + 1) % MAXSIZE;
}
int main() {
queue* q = (queue*)malloc(sizeof(queue));
init_queue(q);
for (int i = 0; i < MAXSIZE; i++) {
in_queue(q, i);
}
sElemType e;
for (int i = 0; i < MAXSIZE - 1; i++) {
out_queue(q, &e);
printf("%d ", e);
}
return 0;
}
循环队列
最新推荐文章于 2024-01-07 23:05:24 发布