循环队列的基本操作c语言完整代码
时间: 2023-12-07 13:36:11 浏览: 104
循环队列是一种特殊的队列,它可以避免普通队列的假溢出问题。下面是循环队列的基本操作C语言完整代码:
```
#define MAXSIZE 100 // 定义循环队列的最大长度
typedef struct {
int data[MAXSIZE]; // 存储队列元素
int front; // 队头指针
int rear; // 队尾指针
} SqQueue;
// 初始化队列
void InitQueue(SqQueue *Q) {
Q->front = Q->rear = 0;
}
// 判断队列是否为空
int QueueEmpty(SqQueue Q) {
if (Q.front == Q.rear) {
return 1;
} else {
return 0;
}
}
// 判断队列是否已满
int QueueFull(SqQueue Q) {
if ((Q.rear + 1) % MAXSIZE == Q.front) {
return 1;
} else {
return 0;
}
}
// 入队操作
int EnQueue(SqQueue *Q, int x) {
if (QueueFull(*Q)) {
return 0;
} else {
Q->data[Q->rear] = x;
Q->rear = (Q->rear + 1) % MAXSIZE;
return 1;
}
}
// 出队操作
int DeQueue(SqQueue *Q, int *x) {
if (QueueEmpty(*Q)) {
return 0;
} else {
*x = Q->data[Q->front];
Q->front = (Q->front + 1) % MAXSIZE;
return 1;
}
}
```
阅读全文