【发布时间】:2015-05-29 13:47:05
【问题描述】:
当一个元素被插入到队列中时,REAR = REAR + 1
。当从队列中删除一个元素时,FRONT = FRONT + 1
当使用数组实现队列时。
现在,最初,FRONT = REAR = -1
都表示队列为空。添加第一个元素时,FRONT = REAR = 0
(假设数组从 0 到 n-1)。
现在,如果我们假设FRONT = 0 and REAR = n-1
暗示队列已满。当删除一些元素时,FRONT 指针会发生变化。让我们说FRONT = 5 and REAR = 10
。因此,数组位置 0 到 4 是空闲的。
当我现在想添加一个元素时,我在位置 0 处添加,FRONT
指向它。但是位置 1、2、3 和 4 是免费的。
但是,当我下次尝试插入元素时,编译器会抛出一个错误,说队列已满。由于FRONT = 0 and REAR = n-1
。如何在其余位置插入并更好地理解这种排队算法?
我也想了解FRONT = REAR + 1
如何作为检查队列是否已满的条件?
【问题讨论】:
标签: data-structures queue