阅读量:1
在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