之前。
我为一个单链表写了一些伪代码。该函数每次出现键(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),因为它遍历整个列表一次。我想知道我的时间复杂度估计是否准确,或者这是否比那更有效。或者如果你认为我的想法是垃圾,会崩溃和可怕的燃烧。谢谢你的来访。
运行时间显然是O(n),因为只进行了一次遍历。
但是我发现你的代码有些不一致。
while (x.key != k and x != NIL)
在上面的语句中,NIL检查应该在条件"x.k key!=k".