在使用链接列表实施队列时,为什么插入复杂性o(1)



我读了我的书,其中书写的是,使用链接列表从Queue中插入和删除两者都具有O(1(的复杂性,但我的理解是删除,这将是O(1(,但是对于插入,它是o(n(,因为它会遍历直到结束指针。

使用链接列表实现队列时,链接列表是包含数据的内部数据结构,因为队列是fifo(首先(是否需要按顺序将元素从头部上移除,并且仅需要将元素添加到尾巴上。单一链接的列表是一个足够的容器,因为它通过从头到尾的元素保持了指针的单程路径。包装器队列的唯一要求是保持对头部的引用和对尾巴的引用。

当弹出/删除元素时,队列使用头指针删除O(1(时间中的第一个元素,并将链接的引用用作下一个元素作为新的头指针。当按下/添加一个元素时,它将用指向新元素的指针标记尾部元素,以维护不间断的"队列",并且还保留对添加元素的引用,以便它可以在O中添加下一个元素(1(时间。

最新更新