C语言编程实现验队列的入队和出队操作
时间: 2024-11-12 09:39:32 浏览: 8
在C语言中,我们可以使用数组或者动态内存分配的数据结构(如链表)来实现队列。这里以数组为例,假设我们有一个固定大小的队列,其头部和尾部指针分别表示下一个将入队的位置和当前最后一个元素的位置。
```c
#include <stdio.h>
#define MAX_SIZE 10 // 队列最大容量
typedef struct {
int data[MAX_SIZE]; // 存储数据的数组
int front; // 队头指针
int rear; // 队尾指针
} Queue;
// 初始化队列
void initQueue(Queue *queue) {
queue-1;
queue->rear = -1;
}
// 入队操作(Enqueue)
void enqueue(Queue *queue, int value) {
if (queue->rear == (MAX_SIZE - 1)) { // 队满
printf("Queue is full.\n");
return;
}
queue->data[++queue->rear] = value; // 更新队尾
if (queue->front == -1) queue->front = 0; // 如果队列为空,更新队头
}
// 出队操作(Dequeue)
int dequeue(Queue *queue) {
if (queue->front == -1) { // 队空
printf("Queue is empty.\n");
return -1;
}
int value = queue->data[queue->front++]; // 取出队头元素并移动指针
if (queue->front > MAX_SIZE / 2) queue->front = 0; // 避免溢出
return value;
}
// 示例演示
int main() {
Queue myQueue;
initQueue(&myQueue);
enqueue(&myQueue, 1);
enqueue(&myQueue, 2);
printf("Popped element: %d\n", dequeue(&myQueue));
return 0;
}
```
阅读全文