我正在尝试编写自己的(尽可能接近标准)单链表实现。但是我想知道人们对这样一个列表的期望时间复杂度是多少?
特别是对于插入,我想知道我应该如何实现它。我读过互联网上的一些地方,有人说插入是 O(1),而另一些人说 O(n) - 都同意双链表是 O(1)。但是我认为 O(1) 也是单链表的情况吗?
只要您知道前一个节点,您只需让前一个节点指向新的新节点,新节点将指向前一个节点最初指向的位置。
这让我想知道人们期望insert
如何表现?通常它在给定的迭代器之前插入元素。然而,使用单链表很难做到这一点(必须O(n)
花费时间来获取前面的元素,然后使用上述方法)。insert
在这样的列表中,在当前迭代器后面放置项目是否很常见?或者 - 可能更好 - 是否有另一个常见的功能?