编写程序实现循环队列的初始化、判断队列空否、入队列和出队列等,用c语言编写
时间: 2024-05-31 14:08:23 浏览: 90
#define MAXSIZE 100 //队列最大长度
typedef struct {
int data[MAXSIZE]; //队列元素数组
int front; //队头指针,指向队头元素位置
int rear; //队尾指针,指向队尾元素后一个位置
} SqQueue;
//初始化队列
void InitQueue(SqQueue *q) {
q->front = q->rear = 0;
}
//判断队列是否为空,是返回1,否返回0
int QueueEmpty(SqQueue *q) {
if (q->front == q->rear)
return 1;
else
return 0;
}
//入队操作
int EnQueue(SqQueue *q, int x) {
if ((q->rear + 1) % MAXSIZE == q->front) //队列已满
return 0;
q->data[q->rear] = x; //将元素x入队
q->rear = (q->rear + 1) % MAXSIZE; //队尾指针加1
return 1;
}
//出队操作
int DeQueue(SqQueue *q, int *x) {
if (QueueEmpty(q)) //队列为空
return 0;
*x = q->data[q->front]; //将队头元素赋值给x
q->front = (q->front + 1) % MAXSIZE; //队头指针加1
return 1;
}
阅读全文