gpt4 book ai didi

c++ - 单链表的时间复杂度

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:27:14 24 4
gpt4 key购买 nike

我正在研究数据结构:单链表。

网站上说单向链表的插入和删除时间复杂度为O(1)。我错过了什么吗?

website link

enter image description here

我在 C++ 中执行此操作,并且我只有一个 root pointer。如果我想在最后插入,那么我必须一直走到后面,这意味着 O(n)

最佳答案

对此的解释是,链表中的大O符号指的是函数实现本身,不包括遍历链表以查找链表中的前一个引用节点。

如果您点击链接到 Singly-LinkedList implementation 的维基百科文章它变得更加清晰:

function insertAfter(Node node, Node newNode)
function removeAfter(Node node)

上述函数签名已经将前导节点作为参数(隐式地与其他变体相同)。

寻找前驱是一个不同的操作,可能是 O(n) 或其他时间复杂度。

关于c++ - 单链表的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40443140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com