设计一段C语言Embarcadero Dev-C++代码,要求实现队列的基本操作。
时间: 2024-10-27 10:08:38 浏览: 46
在Embarcadero Dev-C++中,我们可以使用数组来实现一个简单的队列数据结构。这里是一个基础的队列实现示例,包含入队(enqueue)、出队(dequeue)以及查看队首元素(front),但不包含队列是否为空(is_empty)的检查,因为这通常需要额外的变量维护:
```c
#include <stdio.h>
#define MAX_SIZE 10
// 队列结构体
typedef struct {
int data[MAX_SIZE]; // 存储数据的数组
int front; // 队首指针
int rear; // 队尾指针
} Queue;
// 初始化队列
void initQueue(Queue *q) {
q->front = q->rear = -1;
}
// 入队操作 (enqueue)
void enqueue(Queue *q, int value) {
if (q->rear == (q->front + MAX_SIZE - 1) % MAX_SIZE) { // 判断队满
printf("Queue is full.\n");
return;
}
q->data[++q->rear] = value; // 更新队尾
printf("Enqueued element: %d\n", value);
}
// 出队操作 (dequeue)
int dequeue(Queue *q) {
if (q->front == -1) { // 判断队空
printf("Queue is empty.\n");
return -1;
}
int removedValue = q->data[q->front]; // 获取并移除队首元素
q->data[q->front++] = -1; // 更新队首(如果队列非空)
printf("Dequeued element: %d\n", removedValue);
return removedValue;
}
// 查看队首元素 (front)
int getFront(Queue *q) {
if (q->front == -1) {
printf("Queue is empty.\n");
return -1;
}
return q->data[q->front];
}
int main() {
Queue queue;
initQueue(&queue);
enqueue(&queue, 10);
enqueue(&queue, 20);
enqueue(&queue, 30); // 这行会提示队列已满
int removedValue = dequeue(&queue);
printf("Front element after dequeue: %d\n", getFront(&queue));
return 0;
}
```
阅读全文