在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