用C语言设计一个主函数对循环队列进行测试。主要功能有:入队操作、出队操作、取队头元素
时间: 2024-12-16 12:29:55 浏览: 11
在C语言中,我们可以使用结构体实现循环队列,并创建一个主函数来进行测试。首先,我们需要定义一个循环队列的结构体,包含队列的大小、头指针、尾指针以及元素的存储数组。
```c
#include <stdio.h>
#define MAX_SIZE 10
typedef struct {
int data[MAX_SIZE];
int front; // 队头指针
int rear; // 队尾指针
} Queue;
// 入队操作
void enqueue(Queue* queue, int value) {
if ((queue->rear + 1) % MAX_SIZE == queue->front) {
printf("Queue is full!\n");
} else {
queue->data[queue->rear] = value;
queue->rear = (queue->rear + 1) % MAX_SIZE;
printf("Enqueued %d.\n", value);
}
}
// 出队操作
int dequeue(Queue* queue) {
if (queue->front == queue->rear) {
printf("Queue is empty!\n");
return -1; // 返回特殊值表示队列空了
} else {
int removed_value = queue->data[queue->front];
queue->front = (queue->front + 1) % MAX_SIZE;
return removed_value;
}
}
// 取队头元素
int get_front(Queue* queue) {
if (queue->front == queue->rear) {
printf("Queue is empty!\n");
return -1; // 同上,表示队列空
} else {
return queue->data[queue->front];
}
}
// 主函数测试
int main() {
Queue q;
q.front = q.rear = -1; // 初始化队列为空
// 测试操作
enqueue(&q, 1);
enqueue(&q, 2);
enqueue(&q, 3);
printf("Front element is: %d\n", get_front(&q));
printf("Dequeued element is: %d\n", dequeue(&q));
return 0;
}
```
在这个示例中,我们实现了循环队列的基本操作,包括入队(enqueue)、出队(dequeue)和取队头元素(get_front)。在`main()`函数中,我们创建了一个队列并进行了简单的插入和读取操作。需要注意的是,实际项目中还需要处理异常情况,如队列满或队列空。
阅读全文