我正在学习循环队列。哪个循环队列的实现最好,数组实现还是链表实现?
答案 0 :(得分:1)
我会说链接列表版本会更好的两个解决方案,因为您不必继续调整自己的内存以允许更多元素进入数组。除了Skilldrick在链表中所说的内容之外,关于它实际指向它所属的位置(最后一个节点指向第一个节点,从而使其成为圆形)。
答案 1 :(得分:0)
如果你在链表中这样做,那么它实际上可以是循环的,因为最后一个节点将指向第一个节点。但我认为你需要澄清“最佳”的含义。
答案 2 :(得分:0)
这取决于您需要在循环列表中执行哪些操作。例如,如果您需要随机访问(“给我列表的第237项”),那么数组实现将会快得多。
另一方面,使用工具时,您可能需要有时调整列表的大小,这将很慢。您可以分摊这一点以获得每次插入的O(1)摊销时间,但在实时系统中,偶尔的慢速操作可能是不可接受的。
答案 3 :(得分:0)
循环队列是一个实现数组的有界队列。
它比普通队列更好,因为在这里我们可以有效地利用内存空间。如果我们有一个普通的队列并从那里删除了一些元素,那么就会在那里创建空的空间,即使队列有空单元格也是如此我们不能插入任何新元素,因为插入必须仅从一侧(即后部或尾部)进行,并且必须从另一侧(即前部或头部)进行删除。但是在圆形队列的情况下,前部和后部是彼此相邻。