循环队列可以使用数组se[m]
来存放元素,并使用变量rear
和front
分别表示队头和队尾指针。此结构中,队头指针front
指向队头前一个位置。以下是设计的循环队列入队和出队算法:
入队操作(Enqueue)
- 检查队列是否已满:
- 若
(rear + 1) % m == front
,表示队列已满,入队失败。 - 队尾指针
rear
进一位: rear = (rear + 1) % m
- 将新元素插入到
se[rear]
。
出队操作(Dequeue)
- 检查队列是否为空:
- 若
rear == front
,表示队列为空,出队失败。 - 队头指针
front
进一位: front = (front + 1) % m
- 返回并移除
se[front]
所指的队头元素。
注意:本设计中,front
始终指向队头前一位置,用于区分队满和队空状态。