【发布时间】:2016-07-22 09:31:54
【问题描述】:
我创建了一个大小为 5 的队列。我在队列中插入了 5 个值 (1,2,3,4,5)。现在我的前值在索引 0 处,我的后值指向索引 4(我队列的最后一个位置)。现在我从队列中删除了一个元素,所以我的队列现在只有 (2,3,4,5)。现在我的队列没有满,因为它有一个空闲位置。仅填充了 4 个值,并删除了 1 个值。我怎样才能在队列中的那个空位置输入一个新值?
【问题讨论】:
标签: queue
我创建了一个大小为 5 的队列。我在队列中插入了 5 个值 (1,2,3,4,5)。现在我的前值在索引 0 处,我的后值指向索引 4(我队列的最后一个位置)。现在我从队列中删除了一个元素,所以我的队列现在只有 (2,3,4,5)。现在我的队列没有满,因为它有一个空闲位置。仅填充了 4 个值,并删除了 1 个值。我怎样才能在队列中的那个空位置输入一个新值?
【问题讨论】:
标签: queue
你必须使用
对于入队:
rear = (rear+1)%MAX_SIZE;
所以现在当后端处于结束位置并且前面有空闲空间时,下面的代码将开始以循环方式返回索引。
对于出队:
front = (front+1)%MAX_SIZE;
在出队的情况下类似。
注意:
您必须在代码中设置数组是空还是满的条件。 此外,如果前后位置相同,则意味着数组现在为空,您必须将它们都分配为空位置索引。
【讨论】:
设置这个条件 1. 如果 ( COUNT = MAX ) 那么 一种。显示“队列溢出”; 湾。返回; 2. 否则 一种。如果 ( REAR = MAX ) 那么 一世。后方:= 1; 湾。除此以外 一世。后方 := 后方 + 1; C。队列(后):=项目; d。计数:=计数+1; 3.返回;
【讨论】: