队列的实现及基本操作pta(C语言)(队列)
时间: 2023-11-27 14:03:32 浏览: 68
队列是一种先进先出(FIFO)的数据结构,可以用数组或链表实现。以下是用数组实现的队列,包括基本操作:入队、出队、获取队头元素、获取队列长度、判断队列是否为空。
```c
#include <stdio.h>
#define MAX_SIZE 100
int queue[MAX_SIZE];
int front = 0; // 队头指针
int rear = -1; // 队尾指针
// 入队
void enqueue(int x) {
if (rear == MAX_SIZE - 1) {
printf("Queue is full!\n");
return;
}
rear++;
queue[rear] = x;
}
// 出队
void dequeue() {
if (front > rear) {
printf("Queue is empty!\n");
return;
}
front++;
}
// 获取队头元素
int front_element() {
if (front > rear) {
printf("Queue is empty!\n");
return -1;
}
return queue[front];
}
// 获取队列长度
int length() {
return rear - front + 1;
}
// 判断队列是否为空
int is_empty() {
return front > rear;
}
int main() {
enqueue(1);
enqueue(2);
enqueue(3);
printf("Queue length: %d\n", length());
printf("Front element: %d\n", front_element());
dequeue();
printf("Queue length: %d\n", length());
printf("Front element: %d\n", front_element());
dequeue();
dequeue();
dequeue();
printf("Queue length: %d\n", length());
return 0;
}
```
输出结果:
```
Queue length: 3
Front element: 1
Queue length: 2
Front element: 2
Queue is empty!
Queue length: 0
```