【问题标题】:What happens when Front ==rear in circular queue当 Front ==rear 在循环队列中时会发生什么
【发布时间】:2011-02-24 22:01:52
【问题描述】:

当 front==rear 在循环队列中时会发生什么

队列是否有一个元素或已满或为空

【问题讨论】:

    标签: data-structures queue


    【解决方案1】:

    这是模棱两可的。您需要另一种机制来跟踪队列是否已满。请参阅Wikipedia page 上的困难部分进行讨论。

    引用该页面,这里有一些关于如何解决它的想法:

    为了解决这个问题,有一个 解决方案的数量:
    - 始终保持一个插槽打开。
    - 使用填充计数来区分这两种情况。
    - 使用读取和写入计数来获取填充计数。
    - 使用绝对索引

    .

    【讨论】:

    • 我要问的是,如果队列中的前面和后面相等,即在长度为 5 的队列中,如果后面的星星从 -1 开始,前面的星星从 0 开始,那么 if (front==rear)会发生什么..
    【解决方案2】:

    取决于前后端指向的位置:数组元素或堆上某处的对象。 (你没有提到你的编程语言。)

    如果在您的编程语言中nil 不等于nil,则您的循环对象队列将只有一个元素。但是如果nil == nil 的计算结果为true...你就看不出来:-)

    对于通过数组实现的队列,您也无法分辨。您的队列也可能已满...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多