# Tag Archives: Circular Linked List

## C program to reverse a Circular Linked List

Quick links

Write a C program to create and reverse a circular linked list. Logic to reverse a circular linked list in C programming. How to reverse a circular linked list in C program.

## C program to search an element in Circular Linked List

Quick links

Write a C program to create a Circular Linked List of n nodes and search an element in Circular Linked List. How to search an element by key in Circular Linked List.

In my previous posts, I have explained how to perform search on singly linked list. In this example I will explain you how to perform search operation on Circular Linked List.

## C program to count nodes in Circular Linked List

Quick links

Write a C program to count nodes in Circular Linked List. In this example I will explain how to count nodes in Circular Linked List. C program to create a Circular Linked List and count total elements in Circular Linked List.

## C program to delete element from circular linked list

Quick links

Write a C program to delete element from circular linked list by key. In this article I will explain how to delete by key element from circular linked list. I will explain logic and program to delete element from circular linked list by key.

## C program to insert a node in Circular Linked List

Write a program to create a circular linked list and insert a new node at the beginning or at any position in the given list. How to insert a new node at the beginning of a circular linked list in C. How to insert a new node at any position in a circular linked list in C. Algorithm to insert new node in Circular linked list in C program.

## C program to create and traverse Circular linked list

Write a C program to create a circular linked list of n nodes and traverse the list. How to create a circular linked list of n nodes and display all elements of the list in C. Algorithm to create and traverse a Circular linked list.

## Data Structure : Circular Linked List

A circular linked list is basically a linear linked list that may be singly or doubly. The only difference is that there is no any NULL value terminating the list. In fact in the list every node points to the next node and last node points to the first node, thus forming a circle. Since it forms a circle with no end to stop hence it is called as circular linked list.

In circular linked list there can be no starting or ending node, whole node can be traversed from any node. In order to traverse the circular linked list only once we need to traverse entire list until the starting node is not traversed again.
A circular linked list can be implemented using both singly linked list and doubly linked list. Here is the logical structure of a circular linked list.

## Advantages of a Circular linked list

• Entire list can be traversed from any node.
• Circular lists are the required data structure when we want a list to be accessed in a circle or loop.
• Despite of being singly circular linked list we can easily traverse to its previous node, which is not possible in singly linked list.

## Disadvantages of Circular linked list

• Circular list are complex as compared to singly linked lists.
• Reversing of circular list is a complex as compared to singly or doubly lists.
• If not traversed carefully, then we could end up in an infinite loop.
• Like singly and doubly lists circular linked lists also doesnâ€™t supports direct accessing of elements.

## Applications/Uses of Circular linked list in real life

• Circular lists are used in applications where the entire list is accessed one-by-one in a loop. Example: Operating systems may use it to switch between various running applications in a circular loop.
• It is also used by Operating system to share time for different users, generally uses Round-Robin time sharing mechanism.
• Multiplayer games uses circular list to swap between players in a loop.

## Basic operations on Circular linked list

• Creation of list
• Traversal of list
• Insertion of node
• Deletion of node
• Deletion of first node
• Deletion of node from middle of the list
• Deletion of last node
• Deletion of entire list
• Counting total number of nodes
• Searching
• Reversing of list