为什么我们需要“循环链表”(单链表或双链表)数据结构?
它解决了哪些简单链表(单链表或双链表)显而易见的问题?
最佳答案
一个简单的例子是在多人棋盘游戏中记录轮到谁了。将所有玩家放在一个循环链表中。轮到玩家后,前进到列表中的下一个玩家。这将导致程序在玩家之间无限循环。
要遍历循环链表,请存储指向您看到的第一个元素的指针。当您再次看到该元素时,您已经遍历了整个列表。
void traverse(CircularList *c) {
if (is_empty(c)) {
return;
}
CircularList start = c;
do {
operateOnNode(c);
c = c->next;
} while(c != start);
}
关于c - 为什么我们需要一个 "Circular Linked List"(单或双)数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3589772/