0

我为单链表编写了一些伪代码。该函数应将键 (k) 的每次出现增加前一个元素的键的值,唯一的例外是第一个元素(未更改)。

List-Increase-Key(L,k)
    x = L.head
    k = L.head
    while (x.key != k and x != NIL)
        prex = x.key
        x = x.next
        if x.key == k
            x.key = x.key + prex

我认为运行时间是 O(n),因为它遍历整个列表一次。我想知道我的时间复杂度估计是否准确,或者这是否比这更有效/更低。或者,如果您认为我的想法是垃圾,并且会崩溃并可怕地燃烧。感谢您的光临。

4

1 回答 1

0

运行时间显然是 O(n),因为完成了一次遍历。

但是我在您的代码中发现了一些差异。

while (x.key != k and x != NIL)

在上面的语句中,NIL 检查应该在条件"x.key!=k"之前。

于 2013-06-07T05:07:16.420 回答