C语言队列 操作的代码
时间: 2023-09-23 21:07:38 浏览: 83
以下是C语言中队列的操作代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
// 定义队列结构体
typedef struct {
int data[MAX_SIZE];
int front;
int rear;
} Queue;
// 初始化队列
void init(Queue *q) {
q->front = q->rear = 0;
}
// 判断队列是否为空
int is_empty(Queue *q) {
return q->front == q->rear;
}
// 判断队列是否已满
int is_full(Queue *q) {
return q->rear == MAX_SIZE;
}
// 入队操作
void enqueue(Queue *q, int value) {
if (is_full(q)) {
printf("Queue is full!\n");
exit(1);
}
q->data[q->rear] = value;
q->rear++;
}
// 出队操作
int dequeue(Queue *q) {
if (is_empty(q)) {
printf("Queue is empty!\n");
exit(1);
}
int value = q->data[q->front];
q->front++;
return value;
}
// 获取队头元素
int get_front(Queue *q) {
if (is_empty(q)) {
printf("Queue is empty!\n");
exit(1);
}
return q->data[q->front];
}
// 获取队尾元素
int get_rear(Queue *q) {
if (is_empty(q)) {
printf("Queue is empty!\n");
exit(1);
}
return q->data[q->rear-1];
}
// 打印队列中的元素
void print_queue(Queue *q) {
if (is_empty(q)) {
printf("Queue is empty!\n");
return;
}
printf("Queue: ");
for (int i=q->front; i<q->rear; i++) {
printf("%d ", q->data[i]);
}
printf("\n");
}
int main() {
Queue q;
init(&q);
enqueue(&q, 1);
enqueue(&q, 2);
enqueue(&q, 3);
print_queue(&q);
printf("Front element: %d\n", get_front(&q));
printf("Rear element: %d\n", get_rear(&q));
dequeue(&q);
print_queue(&q);
return 0;
}
```
以上代码实现了基本的队列操作,包括初始化队列、判断队列是否为空、入队、出队、获取队头元素、获取队尾元素和打印队列中的元素等。
阅读全文