Traverse from any node
void traverse(Node start) {
Node cur = start;
do {
process(cur);
cur = cur.next;
} while (cur != start);
} Advertisement
Insert at tail — O(1) with tail pointer
Node tail; // maintains tail
tail.next = newNode;
newNode.next = head;
tail = newNode; Advertisement
Round-robin scheduling
OS process scheduler: circular list of processes, advance pointer per time slice. Fair sharing.
Ring buffers
Fixed-size circular list = ring buffer. Audio DSP, streaming, producer-consumer with backpressure.