Java中的链表 - 在下一个存储地址

时间:2016-09-25 05:21:13

标签: java linked-list

java中链表的基本实现是:

class Node{
   int element;
   Node next;
 ......
}

我不明白的是,在类本身内声明的类的对象如何能够存储另一个数据成员的地址。不声明Node接下来启用下一个本身有一个元素部分然后再次下一个。这会无限期地发生,对吧?那么,它是如何运作的?

2 个答案:

答案 0 :(得分:1)

  

不声明Node接下来启用next自身有一个元素部分然后再次下一个。这会无限期地发生,对吧?

这就是这种数据结构的力量。您可以无限期地添加它,而不必像在静态数组中那样调整大小。

如果您想知道,如何结束清单?将Node next设为null和中提琴!你有你的终端节点。

节点内的节点? 我可能错了,但是Java能够在同一个类中引用一个类实例,因为每个对象基本上都是一个知道其大小的指针。

C ++等价物

class A {
    A *a;
}

答案 1 :(得分:0)

在Java中:

1)当我们声明一个类类型的变量时,只创建一个引用,即没有为该对象分配内存。要为对象分配内存,我们使用new()。

2)将一个对象分配给另一个对象时,只分配参考。它不会复制成员变量。

因此,在链接列表中,我们通过将以下节点的引用分配给当前节点" next"来链接两个节点。领域。虽然不相关,但我想重要的是要意识到,与数组相比,链表确实需要额外的内存来存储指针变量。