在Java中实现循环链表可以使用节点类和循环链表类来实现。以下是一个简单的示例代码:
public class Node {
private int data;
private Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
public class CircularLinkedList {
private Node head;
public void addToEmptyList(int data) {
Node newNode = new Node(data);
newNode.setNext(newNode);
head = newNode;
}
public void addToFront(int data) {
Node newNode = new Node(data);
if (head == null) {
addToEmptyList(data);
} else {
newNode.setNext(head);
Node temp = head;
while (temp.getNext() != head) {
temp = temp.getNext();
}
temp.setNext(newNode);
head = newNode;
}
}
public void addToEnd(int data) {
Node newNode = new Node(data);
if (head == null) {
addToEmptyList(data);
} else {
newNode.setNext(head);
Node temp = head;
while (temp.getNext() != head) {
temp = temp.getNext();
}
temp.setNext(newNode);
}
}
public void display() {
if (head == null) {
System.out.println("List is empty");
} else {
Node temp = head;
do {
System.out.print(temp.getData() + " ");
temp = temp.getNext();
} while (temp != head);
System.out.println();
}
}
public static void main(String[] args) {
CircularLinkedList list = new CircularLinkedList();
list.addToEnd(1);
list.addToEnd(2);
list.addToFront(3);
list.display();
}
}
这个示例代码中,Node
类表示链表的节点,具有数据和下一个节点的引用。CircularLinkedList
类表示循环链表,使用头节点(head
)来表示循环链表的起始位置。
addToEmptyList
方法用于在空链表中添加一个节点,addToFront
方法用于在链表的前面添加一个节点,addToEnd
方法用于在链表的末尾添加一个节点。
display
方法用于打印循环链表的所有节点。
在main
方法中,我们创建了一个循环链表,并添加了一些节点,然后调用display
方法打印链表的内容。
输出结果为:3 1 2