空间复杂度:链接列表节点数组(头部)

时间:2017-02-27 22:38:52

标签: javascript arrays algorithm linked-list space-complexity

给定单个链表的头节点数组,数组的空间复杂度是多少?我会得出结论,空间复杂度将是o(n),因为每个节点只包含指向下一个节点的指针。但是,当我console.log /打印单个节点时,将显示整个列表。是否有可能空间复杂度为o(n * m),其中m是数组中每个链表的长度?这是一个小例子:

// JavaScript (ES6)

class Node {
  constructor(value) {
    this.value = value
    this.next = null
  }

  const A = new Node('a')
  const B = new Node('b')
  const C = new Node('c')
  const D = new Node('d')

  A.next = B
  B.next = C
  C.next = D

  console.log(a)

这是console.log:

的结果
{
    value: "a",
    next: {
        value: "b",
        next: {
            value: "c",
            next: {
                value: "d",
                next: null
            }
        }
    }
}

因此,将Node A放入数组[A]时,空间复杂度会上升还是保持不变?

1 个答案:

答案 0 :(得分:0)

空间复杂度为 df <- data.frame(B=c("A","B","C","C"), C=c("A","C","B","B"), D=c("B","A","C","A") ) df$A<-ifelse(df$B==df$C,paste(df$D),paste(df$C)) return(df)

您从O(n)看到的是,它在打印时会追逐几层指针,因为这些数据在调试时往往非常有用。但是如果你自己走过键/值,你会发现它有一个固定的大小。