实现队列的基本操作(插入,删除,显示数据等)c语言
时间: 2024-10-20 10:02:59 浏览: 68
在C语言中,实现队列的基本操作通常会涉及到数组或者链表的数据结构。这里我们简要介绍使用数组实现单向队列(先进先出FIFO)的一些基本操作:
**1. 队列声明与初始化:**
```c
#define QUEUE_SIZE 10 // 定义队列大小
typedef struct {
int data[QUEUE_SIZE]; // 存储数据的数组
int front; // 队头指针
int rear; // 队尾指针
} Queue;
```
**2. 插入元素(Enqueue):**
- 如果队尾未满,则将新元素添加到数组rear位置,并更新rear指针。
```c
void enqueue(Queue *q, int value) {
if (q->rear == (q->front + QUEUE_SIZE - 1) % QUEUE_SIZE) { // 满队
printf("Queue is full.\n");
} else {
q->data[q->rear] = value;
q->rear = (q->rear + 1) % QUEUE_SIZE; // 环形处理
}
}
```
**3. 删除元素(Dequeue):**
- 如果队列非空,则从数组front位置移除并返回元素,同时更新front指针。
```c
int dequeue(Queue *q) {
if (q->front == q->rear) { // 空队
return -1; // 返回特殊值表示队列为空
} else {
int value = q->data[q->front];
q->front = (q->front + 1) % QUEUE_SIZE;
return value;
}
}
```
**4. 显示数据(Peek):**
查看队首元素但不删除,可以在dequeue函数前直接访问front位置的元素。
```c
int peek(Queue *q) {
if (q->front == q->rear) {
return -1;
} else {
return q->data[q->front];
}
}
```
阅读全文