使用线性数组可以很容易地表示队列。 在每个队列的情况下实现有两个变量,即前面(front)和后面(rear)。 前后变量指向队列中执行插入和删除的位置。 最初,front和queue的值为-1,表示空队列。 包含5个元素的队列的数组表示以及前后的值如下图所示。
上图显示了形成英文单词“HELLO”的字符队列。 因为,到目前为止在队列中没有执行删除报操作,因此font的值保持为0。 但是,每次在队列中执行插入时,rear的值都会增加1。 将元素插入上图所示的队列后,队列将如下所示。 rear的值将变为5,而font的值保持不变。
删除一个元素后,front的值将从0增加到1。当前,队列内容将类似于如下。
1. 在队列中插入元素的算法
通过将rear与max - 1进行比较来检查队列是否已满,如果是,则返回溢出错误。
如果要将数据项作为列表中的第一个元素插入,则在这种情况下将前后值设置为0并将元素插入后端。否则继续增加rear的值并逐个插入每个元素,使用rear作为索引。
算法
第1步:IF REAR = MAX - 1
写OVERFLOW
转到第4步
[IF结束]
第2步:IF FRONT = -1且REAR = -1
SET FRONT = REAR = 0
其他
SET REAR = REAR + 1
[IF结束]
第3步:设置QUEUE [REAR] = NUM
第4步:退出
使用C语言实现以下算法如下所示 -
void insert (int queue[], int max, int front, int rear, int item)
{
if (rear + 1 == max)
{
printf("overflow");
}
else
{
if(front == -1 && rear == -1)
{