当前面==后面的循环队列
时会发生什么队列有一个元素或已满或是空的
答案 0 :(得分:6)
这是模棱两可的。您需要另一种机制来跟踪队列是否已满。请参阅Wikipedia page上的“困难”部分进行讨论。
引用该页面,这里有一些关于如何解决它的想法:
要解决这个问题,有一个 解决方案数量:
- 始终保持一个插槽打开 - 使用填充计数来区分这两种情况 - 使用读取和写入计数来获取填充计数。
- 使用绝对指数
答案 1 :(得分:0)
取决于前端和后端指向的位置:数组元素或堆上某处的对象。 (你没有提到你的编程语言。)
如果您的编程语言nil
不等于nil
,则您的循环对象队列将具有一个元素。但是,如果nil == nil
评估为true
......你无法告诉:-)
在通过数组实现队列的情况下,您也无法告诉它。你的队列也可能已满......