在动态队列中维护后端的目的是什么?

时间:2017-12-20 16:33:14

标签: queue

可以理解为什么我们需要在静态队列中维护一个后端,但为什么有必要在动态队列中维护一个后端,我知道它使编程更容易并且减少了时间复杂度(b / c较小的循环是需要) 但是我们也应该在单链表中保持一个后方。

2 个答案:

答案 0 :(得分:0)

队列的一个操作是将一个元素添加到队列的末尾(后面):入队操作。保持对队列后部的引用允许在恒定时间内实现入队操作(尽管,根据用作队列基础的较低级数据结构的类型,可能存在其他复杂性源。)

  

据我所知,它使编程更容易并减少了时间复杂度......但是我们也应该在单链表中保留一个后面的内容。

单链表不需要提供排队操作,因此不需要维护后指针。

但是,如果需要,可以用后指针增加单链表。

答案 1 :(得分:0)

  

据了解,为什么我们需要在静态队列中保持后部但是   为什么有必要在动态队列中维护一个后方

出于同样的原因。新元素被添加到一侧,旧元素通过队列概念的定义从另一侧增加。

  

......但是我们也应该在单链表中保留一个后方。

队列和单链表之间没有逻辑关系。队列可以由任何带下划线的容器实现,该容器支持来自对方的推送和弹出操作。

如果你想使用单链表作为带下划线的容器,那么你确实应该使用双面单链表来提高操作效率。

单面单链表更适合模拟堆栈而不是队列。