用C语言编写一个程序,实现循环队列的各种基本运算的算法,在此基础上设计一个主程序,有如下功能:初始化队列q,判断队列q是否为非空,依次进队元素a、b、c,出队一个元素,输出该元素,依次进队元素d、e、f,将所有元素出队,并输出出队序列。
时间: 2024-10-10 09:07:18 浏览: 20
在C语言中,我们可以使用数组结合指针的方式来实现循环队列,这里是一个简单的实现:
```c
#include <stdio.h>
#define MAX_SIZE 5
typedef struct {
int *data;
int front;
int rear;
} Queue;
Queue* create_queue() {
Queue *queue = (Queue*)malloc(sizeof(Queue));
queue->data = (int*)malloc(MAX_SIZE * sizeof(int));
queue->front = -1;
queue->rear = -1;
return queue;
}
void enqueue(Queue *queue, int item) {
if ((queue->rear + 1) % MAX_SIZE == queue->front) {
printf("Queue is full.\n");
return;
}
queue->rear = (queue->rear + 1) % MAX_SIZE;
queue->data[queue->rear] = item;
if (queue->front == -1)
queue->front = queue->rear;
}
int dequeue(Queue *queue) {
if (queue->front == -1 || queue->front == queue->rear) {
printf("Queue is empty.\n");
return -1;
}
int item = queue->data[queue->front];
queue->front = (queue->front + 1) % MAX_SIZE;
return item;
}
void display_queue(Queue *queue) {
if (queue->front == queue->rear)
printf("Queue is empty.\n");
else {
for (int i = queue->front; i != queue->rear;
阅读全文