java循环链表怎么实现

avatar
作者
猴君
阅读量: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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!