【问题标题】:How to add elements to a queue when the queue is already full and some values are then removed?当队列已满并且随后删除了一些值时,如何将元素添加到队列中?
【发布时间】:2016-07-22 09:31:54
【问题描述】:

我创建了一个大小为 5 的队列。我在队列中插入了 5 个值 (1,2,3,4,5)。现在我的前值在索引 0 处,我的后值指向索引 4(我队列的最后一个位置)。现在我从队列中删除了一个元素,所以我的队列现在只有 (2,3,4,5)。现在我的队列没有满,因为它有一个空闲位置。仅填充了 4 个值,并删除了 1 个值。我怎样才能在队列中的那个空位置输入一个新值?

【问题讨论】:

    标签: queue


    【解决方案1】:

    你必须使用

    对于入队:

    rear = (rear+1)%MAX_SIZE;
    

    所以现在当后端处于结束位置并且前面有空闲空间时,下面的代码将开始以循环方式返回索引。

    对于出队:

    front = (front+1)%MAX_SIZE;
    

    在出队的情况下类似。

    注意:

    您必须在代码中设置数组是空还是满的条件。 此外,如果前后位置相同,则意味着数组现在为空,您必须将它们都分配为空位置索引。

    【讨论】:

      【解决方案2】:

      设置这个条件 1. 如果 ( COUNT = MAX ) 那么 一种。显示“队列溢出”; 湾。返回; 2. 否则 一种。如果 ( REAR = MAX ) 那么 一世。后方:= 1; 湾。除此以外 一世。后方 := 后方 + 1; C。队列(后):=项目; d。计数:=计数+1; 3.返回;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-04
        • 2021-08-18
        • 2018-07-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多