编写程序,用c语音实现队列的基本运算:入队、出队、输出队、取队头、取队尾、求队长、清空队、要求采用顺序循环队实现
时间: 2023-10-06 21:14:09 浏览: 93
利用C语言实现队列的基本功能
3星 · 编辑精心推荐
下面是使用C语言实现顺序循环队列的基本运算代码。其中队列的最大长度为10,队列中存储的是整型数据。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 10
int queue[MAX_SIZE];
int front = 0, rear = 0;
// 入队
void enqueue(int value) {
if ((rear + 1) % MAX_SIZE == front) {
printf("Queue is full!\n");
return;
}
queue[rear] = value;
rear = (rear + 1) % MAX_SIZE;
}
// 出队
int dequeue() {
if (front == rear) {
printf("Queue is empty!\n");
return -1;
}
int value = queue[front];
front = (front + 1) % MAX_SIZE;
return value;
}
// 输出队
void print_queue() {
if (front == rear) {
printf("Queue is empty!\n");
return;
}
printf("Queue: ");
int i = front;
while (i != rear) {
printf("%d ", queue[i]);
i = (i + 1) % MAX_SIZE;
}
printf("\n");
}
// 取队头
int get_front() {
if (front == rear) {
printf("Queue is empty!\n");
return -1;
}
return queue[front];
}
// 取队尾
int get_rear() {
if (front == rear) {
printf("Queue is empty!\n");
return -1;
}
return queue[(rear - 1 + MAX_SIZE) % MAX_SIZE];
}
// 求队长
int size() {
return (rear - front + MAX_SIZE) % MAX_SIZE;
}
// 清空队
void clear() {
front = rear = 0;
}
int main() {
enqueue(1);
enqueue(2);
enqueue(3);
print_queue(); // Queue: 1 2 3
printf("Front: %d\n", get_front()); // Front: 1
printf("Rear: %d\n", get_rear()); // Rear: 3
printf("Size: %d\n", size()); // Size: 3
dequeue();
dequeue();
print_queue(); // Queue: 3
clear();
print_queue(); // Queue is empty!
return 0;
}
```
阅读全文