【问题标题】:Does each node in linked list occupy same amount of space?链表中的每个节点是否占用相同的空间?
【发布时间】:2020-06-26 03:12:44
【问题描述】:

我知道链表中的每个节点都由valnext 节点组成。我的直觉是head 会比tail 占用更多的空间。因为head 引用了它的下一个节点,它也引用了它的下一个节点等等,而tail 的下一个是空的。还是列表中的所有节点占用的空间都一样?

【问题讨论】:

  • 我认为您需要阅读参考是什么以及它在内存中的表示方式
  • 无论是引用某个实际对象还是根本没有对象(即null),引用都会占用相同的固定空间量。当然,除非您将被引用对象本身占用的空间计为非空引用占用的空间的一部分(个人而言,I 不...)
  • 在java中,链表中的节点大小是固定的。在其他一些语言中,节点可以有不同的大小,例如 C 中的节点结构带有 flexible array member

标签: java object linked-list nodes


【解决方案1】:

链表中的每个节点都将占用相同数量的内存。如果我们在链表中定义一个 Node 如下:

class Node{
   int val;
   Node next;
}

要认识到,除了数据之外,每个节点只包含对其后节点的引用。甚至头节​​点也只包含对依次出现的节点的引用。您可以通过从头开始遍历下一个节点来遍历整个列表,但是每个节点都包含固定数量的数据(它包含的数据和对其邻居的引用)。如果每个节点中存储的数据类型的大小是固定的,那么每个节点的大小都是相同的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    相关资源
    最近更新 更多