给定单个链表的头节点数组,数组的空间复杂度是多少?我会得出结论,空间复杂度将是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]
时,空间复杂度会上升还是保持不变?
答案 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)
看到的是,它在打印时会追逐几层指针,因为这些数据在调试时往往非常有用。但是如果你自己走过键/值,你会发现它有一个固定的大小。