gpt4 book ai didi

java - 如何将循环链表排入队列,同时确保最后一个元素指向第一个元素?

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:14 24 4
gpt4 key购买 nike

我正在尝试为循环链表构建入队方法。这是我到目前为止所拥有的:

public class Test<T> implements UnboundedQueueInterface<T> {
protected LLNode<T> rear;
protected LLNode<T> current;

public Test() {
rear = null;
current = null;
}

@Override
public boolean isEmpty() {
if (rear == null) {
return true;
} else {
return false;
}
}

@Override
public void enqueue(T element) {
LLNode<T> node = new LLNode<T>(element);

if (rear == null) {
rear = node;
node.setLink(rear);
} else {
LLNode<T> temp = rear;
rear = node;
node.setLink(temp);
}
}
}

最后一个元素不是链接到第一个元素,而是链接到倒数第二个元素,依此类推。有什么想法吗?

最佳答案

LLNode<T> temp = rear;
rear = node;
node.setLink(temp);

temp 保留原来的后部。当你调用setLink时,你是在说指向temp,也就是原来的rear。相反,您需要指向rear.getLink()以指向第一个元素(因为旧的rear指向第一个元素)。

之后,您还有另一个链接需要修复。 temp(旧的后面)仍然指向第一个元素,但应该更新。

关于java - 如何将循环链表排入队列,同时确保最后一个元素指向第一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40229616/

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