数据结构循环链表的实现
时间: 2024-09-19 10:10:24 浏览: 41
数据结构中的循环链表,也称为环形链表(Circular Linked List),是一种特殊的链式数据结构,它的特点是最后一个节点的指针指向第一个节点,形成一个闭合的环。这样可以避免在遍历列表时遇到null指针异常,并使得从任何一个节点开始都能无限循环下去。
以下是循环链表的一个基本实现:
1. **节点定义**:
- 定义一个Node类,包含两个属性:data(存储数据)和next(指向下一个节点的引用)。对于循环链表,最后的next指针会指向第一个节点。
```java
class Node {
int data;
Node next;
// 构造函数
public Node(int value) {
this.data = value;
this.next = null; // 对于循环链表的第一个节点,初始化为null
}
}
```
2. **创建循环链表**:
- 创建一个头节点head,初始为空,然后添加元素到链表中。
```java
Node head = new Node(0); // 初始化空环形链表
// 添加元素
for (int i = 1; i < elements.length; i++) {
Node newNode = new Node(elements[i]);
newNode.next = head; // 将新节点的next指向头节点,形成环
if (i == 0) {
head.next = newNode; // 如果是第一个元素,也要将头节点的next指向新节点
} else {
head = newNode; // 非第一个元素,更新头节点为当前节点
}
}
```
3. **遍历循环链表**:
- 使用while循环,从任意节点开始,直到再次回到起点。
```java
Node current = head;
do {
System.out.print(current.data + " ");
current = current.next;
} while (current != head);
```
阅读全文