📅  最后修改于: 2023-12-03 15:25:37.055000             🧑  作者: Mango
在 Java 编程语言中,循环列表是一种常见的数据结构,它允许在列表的最后一个元素之后立即添加新元素,并重新开始于第一个元素。在本文中,我们将讨论如何在 Java 中创建循环列表。
要创建循环列表,我们首先需要定义一个节点类来表示列表中的每个元素,并定义一个循环列表类来管理节点之间的关系。
节点类应该包含以下内容:
我们可以用以下代码来定义节点类:
class Node {
int value;
Node next;
public Node(int value) {
this.value = value;
}
}
循环列表类应该包含以下内容:
我们可以用以下代码来定义循环列表类:
class CircularList {
Node first;
Node current;
int size = 0;
public CircularList() {}
public void add(int value) {
Node node = new Node(value);
if (size == 0) {
first = node;
current = node;
node.next = first;
} else {
node.next = first;
current.next = node;
current = node;
}
size++;
}
}
遍历循环列表需要从当前节点开始,并使用指针向下遍历。由于循环列表不存在最后一个元素,因此我们可以使用以下代码来实现循环:
public void traverse() {
Node current = first;
do {
System.out.println(current.value);
current = current.next;
} while (current != first);
}
删除元素需要找到要删除的节点,并将前一个节点的指针更改为指向下一个节点。如果要删除的是第一个节点,则需要更改第一个节点。
public void delete(int value) {
Node current = first;
Node previous = null;
while (current != null) {
if (current.value == value) {
if (previous == null) {
first = current.next;
} else {
previous.next = current.next;
}
size--;
return;
}
previous = current;
current = current.next;
if (current == first) {
break;
}
}
}
本文介绍了在 Java 中创建循环列表的方法,包括如何创建节点类和循环列表类,如何遍历循环列表,以及如何删除循环列表中的元素。虽然在大多数情况下,循环列表不是最佳的数据结构选择,但它在某些情况下非常有用。
如果你想要了解更多关于 Java 数据结构和算法的内容,建议阅读《算法(第四版)》或《数据结构与算法分析》等书籍。