用c语言写一个顺序队列
时间: 2024-04-30 19:18:27 浏览: 99
以下是一个基本的顺序队列的 C 语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int front;
int rear;
} Queue;
void initQueue(Queue *q) {
q->front = q->rear = 0;
}
int isEmpty(Queue *q) {
return q->front == q->rear;
}
int isFull(Queue *q) {
return q->rear == MAXSIZE;
}
void enQueue(Queue *q, int x) {
if (isFull(q)) {
printf("Queue is Full\n");
return;
}
q->data[q->rear++] = x;
}
void deQueue(Queue *q, int *x) {
if (isEmpty(q)) {
printf("Queue is Empty\n");
return;
}
*x = q->data[q->front++];
}
int main() {
Queue q;
initQueue(&q);
enQueue(&q, 1);
enQueue(&q, 2);
enQueue(&q, 3);
int x;
deQueue(&q, &x);
printf("%d ", x);
deQueue(&q, &x);
printf("%d ", x);
deQueue(&q, &x);
printf("%d ", x);
deQueue(&q, &x);
return 0;
}
```
在该实现中,队列数据存储在一个数组中,`front` 和 `rear` 分别用于指向队列的头部和尾部,`initQueue()` 用于初始化队列,`isEmpty()` 和 `isFull()` 用于判断队列是否为空和是否已满,`enQueue()` 用于向队列中添加元素,`deQueue()` 用于从队列中删除元素。
阅读全文
相关推荐













