gpt4 book ai didi

java - Java循环链表节点插入

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

我尝试实现循环链​​表的插入方法。我想我取得了一些成功。

问题:当我显示列表时。显示方法将循环,因为链接的每个下一个变量都链接到非空节点对象。所以 head 永远不会是空对象。根据我对单链表的内存,head 总是指向列表中的第一个节点或其中第一个包含数据的节点。

我对循环链表的概念理解:据我所知,循环链接有点像单链表,但有一点点不同:尾部对象的下一个变量指向头部。

我正在对其进行编码,就像源链接提供的图表一样。

来源:http://sourcecodemania.com/circular-linked-lists/

public void insert(String data)
{
Link link = new Link(data);

if(head == null)
{
head = link;
tail= link;
}
else
{
tail.next = link;
tail = link;
tail.next = head;

}
}


public void display()
{


// good implementation for display #2
while(head != null)
{
// System.out.println (head.data);
head = head.next;
}
}

最佳答案

一旦插入至少一个元素,就永远不会遇到 null。它将继续下去,直到无穷大。

此外,仅仅为了显示列表而修改 head 可能不是一个好主意。像显示这样的操作不应该有任何副作用。

相反,在列表类中保留成员字段大小,并在每个插入和删除方法中更新它。

现在您就会知道应该迭代循环多少次。

ListClassName current = head;    // Head is not modified.
for (int i = 0; i < this.size; i++) {
// System.out.println (current.data);
current = current.next;
}

祝你好运。

关于java - Java循环链表节点插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29886013/

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