用c语言编写程序实现循环队列的初始化,判断队列空否,入队列和出队列
时间: 2023-05-31 17:02:13 浏览: 105
循环队列的定义:
```c
#define MAXSIZE 100 // 循环队列最大长度为100
typedef struct{
int data[MAXSIZE];
int front; // 队头指针
int rear; // 队尾指针
} Queue;
```
循环队列的初始化:
```c
void InitQueue(Queue *q){
q->front = q->rear = 0; // 队头和队尾指针初始化为0
}
```
判断队列是否为空:
```c
int IsEmpty(Queue *q){
if(q->front == q->rear) // 队头和队尾指针相同时,队列为空
return 1;
else
return 0;
}
```
入队列:
```c
int EnQueue(Queue *q, int x){
if((q->rear+1)%MAXSIZE == q->front) // 队列已满,无法入队
return 0;
q->data[q->rear] = x; // 将元素x插入队尾
q->rear = (q->rear+1)%MAXSIZE; // 队尾指针向后移动一位
return 1;
}
```
出队列:
```c
int DeQueue(Queue *q, int *x){
if(q->front == q->rear) // 队列为空,无法出队
return 0;
*x = q->data[q->front]; // 取出队头元素
q->front = (q->front+1)%MAXSIZE; // 队头指针向后移动一位
return 1;
}
```
阅读全文