假设以数组循环存放队列的元素,同时设立队头指针和尾指针,用c语言实现
时间: 2024-10-27 07:07:05 浏览: 47
在C语言中,我们可以使用数组作为队列的数据结构,通过队头和队尾指针来管理元素的插入和删除操作。这里简单描述一下基本的实现:
1. 首先,创建一个数组来存储队列的元素,并初始化队头(front)和队尾(rear)指针。假设数组名为queue[],大小为queue_size。
```c
int queue[queue_size];
int front = 0; // 队头初始位置为0
int rear = -1; // 队尾初始位置为-1(表示空队列)
```
2. 插入元素(enqueue):
当队尾指针不是数组长度减一(即不是满),可以将新元素添加到队尾并更新队尾指针。
```c
void enqueue(int item) {
if (rear == queue_size - 1) {
printf("Queue is full.\n");
} else {
rear++;
queue[rear] = item;
printf("Enqueued %d\n", item);
}
}
```
3. 删除元素(dequeue):
如果队头指针小于队尾指针,说明队列非空,可以从队头移除元素并更新队头指针。
```c
int dequeue() {
if (front == rear) {
printf("Queue is empty.\n");
return -1; // 或者返回特殊值,表示队列为空
} else {
int removedItem = queue[front];
front++;
printf("Dequeued %d\n", removedItem);
return removedItem;
}
}
```
4. 查看队列是否为空/满:
分别检查front和rear是否相等判断队列是否为空,以及 rear 是否等于 queue_size - 1 判断队列是否已满。
```c
bool isEmpty() { return front == rear; }
bool isFull() { return rear == queue_size - 1; }
```
阅读全文