gpt4 book ai didi

java - 如何确定链表的方向

转载 作者:行者123 更新时间:2023-11-30 03:45:04 27 4
gpt4 key购买 nike

我必须创建一个链表,将其自身添加到左侧,所以我想它是这样的,其中框是节点,箭头是链接:

tail [] <- [] <- [] <- ... [] head

但是当你添加第二个节点时,如何确定链表的方向呢?你怎么知道它将被放置在哪一边?

2nd?  1st  2nd?
[] [] []

例如以下代码: head = new IntNode(5,head)
如果链表是这样的,则会添加到右侧:

         head         tail
[] -> [] -> [] -> []

但这只是在添加到具有该格式的已创建列表时,那么在创建新的链接列表时将从哪一侧开始?

最佳答案

嗯,没有带有链表的

该方向仅用于方便的图形表示,因为我们可以轻松地描绘它。从技术上讲,您可以横向绘制一个链表,从上到下,从下到上,从左到右,并不重要。

所有链表都有一个从头到尾的单一方向。或者在双向链表的情况下,从头到尾和从尾到头的双向

我猜你可以在技术上创建一个双向链表,其中所有 "left""prev" 指针都是 null 以使其看起来像就像一切顺利一样。或者将其所有 "right""next" 指针设置为 null 并使其看起来像是向左移动。无论哪种情况,这样的指示都没有实际意义。

在内存中,链表节点的Node.next值仅包含下一个节点的内存地址。该内存位置不必在物理上紧邻节点。从技术上讲,链表指针可以在整个内存中曲折变化,在操作系统和底层系统决定为其分配内存的任何地方连接 block 。没有像我们在现实生活中习惯的“自然”顺序,只是从头到尾的指针序列

例如,就计算机而言,这两个列表是等效的。我只是把它们画在不同的方向:)

linked lists

关于java - 如何确定链表的方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962599/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com