java-链​​表,创建无名节点

标签 java nodes

我的问题也许太简单了:也许这就是我未能找到书面答案的原因。 我想了解链表的构建方式,但有一件事我无法理解: 通常,当我创建某种类的对象时,我需要给它一个名称,如下所示:

 cat kitten =new cat();

同时,当我这样做时,计算机会给它一个地址,例如 dfe@fggv3444。 当我想在某种方法中使用创建的对象时,我用我给它的名称来寻址它:在我们的例子中:“cat”。 逻辑是,如果我以相同的名称“cat”命名 2 个对象,计算机将不知道要访问哪个对象,或者可能同时访问两个对象。 现在的问题是: 当我们使用链表时,在整个程序中使用的节点数量变化很大。那么这个节点类类型的对象是如何获取它们的名称的呢?显然它们必须有一个名称,但我不在那里为每个节点命名......

它是如何工作的?!

提前致谢。 我确信这个问题中的某些内容一定很愚蠢,但无法弄清楚是什么。

最佳答案

每个cat名称本质上(正如@Turing85在评论中指出的那样)只是一个人类可读格式的cat实例的内存地址。

链表的核心是一组节点,每个节点都有一个下一个节点(下一个是变量连接节点以形成列表)。每只猫都被简单地称为node.value,其中value是指向节点猫的地址的“名称”。每个节点的 next 变量都指向下一个节点,该节点有自己的

您不能在同一范围内将两个对象命名为相同的内容 - 您可以将 cat1cat2 都指定为 cat 类型,每个都指向不同cat的内存地址。链表可以做到这一点的原因是因为每个节点都有自己的范围,其他节点看不到。因此,所有节点都可以有一个 next 和一个 value,称为 node.nextnode.value

      node1        +--------> node2        +--------> node3
+--------------+   |    +--------------+   |    +--------------+
| value = cat1*|   |    | value = cat2 |   |    | value = cat3 |
| next = node2-|---+    | next = node3-|---+    | next = null  |
+--------------+        +--------------+        +--------------+

*---> cat1
+--------------+
| name = "tom" |
| col = "grey" |  ...and likewise for the other nodes
| ............ |

关于java-链​​表,创建无名节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50804323/

相关文章:

c++ - 不太确定如何从这里继续前进。使用链表搜索?

c++ - C++中实现List时在何处声明Node结构

swift - 如何从 scenekit 场景中删除特定节点?

java - Jquery/HTML5/Ajax 上传进度条?

java - GWT 2.7.0 Super Dev Mode,更改后不要重新编译服务器端代码

java - 如何确保 SFTP session 始终在 spring-batch 结束时关闭

C#算法搜索两个顶点之间的所有路径

java - Android 应用程序在从其他应用程序接收内容时崩溃

java - Spring in Action III-1第1章示例,应用无法正常运行

java - 将节点转换为元素给出 ClassCastException