循环链表
mvn exec:java -Dexec.mainClass="com.hbase.example.RedisDemo"
循环链表:没有终点的旅程
循环链表是一种特殊的链表,它的尾节点不是指向空值,而是指向头节点,形成一个环形结构。
struct CircularListNode {
int val;
CircularListNode* next;
CircularListNode(int x) : val(x), next(nullptr) {}
};
循环链表的初始化略有不同:
class CircularList {
private:
CircularListNode* head;
public:
CircularList() : head(nullptr) {}
void insert(int val) {
CircularListNode* newNode = new CircularListNode(val);
if (head == nullptr) {
head = newNode;
head->next = head; // 指向自己
} else {
newNode->next = head->next;
head->next = newNode;
}
}
};
循环链表的应用场景包括:
- 轮转调度:操作系统中的进程调度
- 约瑟夫环问题:经典的数学问题
- 循环队列:固定大小的缓冲区
浙公网安备 33010602011771号