请用C语言实现一个对队列进行基本操作的系统,主要包括队列的创建﹑入队和出队等基本操作。
时间: 2024-05-13 14:20:10 浏览: 75
好的,我了解了你的要求。以下是基本操作的队列的C语言实现示例:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
//定义一个队列结构体
typedef struct {
int data[MAX_SIZE]; // 队列的数据元素
int front; // 队首指针
int rear; // 队尾指针
} Queue;
//初始化队列
void initQueue(Queue *q) {
q->front = q->rear = 0; //初始化队首和队尾指针
}
//判断队列是否为空
int isQueueEmpty(Queue *q) {
return q->front == q->rear;
}
//判断队列是否已满
int isQueueFull(Queue *q) {
return (q->rear + 1) % MAX_SIZE == q->front;
}
//入队
int enQueue(Queue *q, int x) {
if (isQueueFull(q)) {
printf("Queue is full.");
return 0; //入队失败
} else {
q->data[q->rear] = x;
q->rear = (q->rear + 1) % MAX_SIZE;
return 1; //入队成功
}
}
//出队
int deQueue(Queue *q, int *x) {
if (isQueueEmpty(q)) {
printf("Queue is empty.");
return 0; //出队失败
} else {
*x = q->data[q->front];
q->front = (q->front + 1) % MAX_SIZE;
return 1; //出队成功
}
}
int main() {
Queue q;
int i, x;
initQueue(&q);
printf("入队操作:\n");
for (i = 0; i < 10; i++) {
if (enQueue(&q, i))
printf("%d ", i);
}
printf("\n出队操作:\n");
while (!isQueueEmpty(&q)) {
deQueue(&q, &x);
printf("%d ", x);
}
return 0;
}
```
阅读全文