Harshit Jindal Mar 15, 2021

A Circular Linked List is a slightly complicated data structure than a linked list. It is a linked list in which all nodes are connected circularly and forms a chain. There is no `NULL` at the last node; instead, it stores the address of the `head` of the linked list. It is very dynamic in nature as we can insert elements anywhere. We can start traversing the linked list from any point on the linked list. We can make a circular linked list out of both singly and doubly linked lists.

In a doubly linked list, the next pointer of the `tail` points to the `head`, and the previous pointer of the `head` points to the `tail` and makes a doubly circular linked list.

## Why Circular?

1. It is useful for the implementation of several data structures like Queues, Fibonacci Heaps. An efficient queue without two separate pointers for `front` and `rear` can be built, and only a single pointer pointing to the `tail` is sufficient to insert or remove as the front is just the next pointer from `tail`.
2. It is used in CPU scheduling to maintain jobs in the queue and allocate one of the time to execute while the rest all wait. It helps in quickly cycling through all jobs and fair allocation of resources to each job until all of them are over.
3. It is used in multiplayer games to store the players next to play.
4. We can insert elements anywhere in a circular linked list. We can start traversing from any point.

## Basic Operations of the Circular Linked List

We can perform the following operations on a circular linked list.

• `Insert`: Insert an element inside the circular linked list.
• `Delete`: Delete an element present inside the circular linked list.
• `Traverse`: Iterate over the content of the circular linked list.
• `Search`: Check whether an element is present inside the linked list.

We will cover all these operations in detail in subsequent articles.

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.