Finding effective ways to organize huge amounts of data is essential to save memory and time. Your interview preparation will benefit from mastering these ideas, as data structure is among the most crucial subjects. One such necessary data structure concept is a linked list.

Just like an array, a linked list is a linear data structure. Links between the items of a linked list are made through pointers, unlike the storage of elements in an array, which is done at a centralized location. They consist of several interconnected nodes; here, each node keeps the data and address of the subsequent node.

The members of a singly linked list can only be traversed from head to tail, making it a unidirectional list. We can carry out several operations on a singly linked list, including list traversal and element searching.

Additionally, we may insert elements into a single linked list at certain locations, such as the head, tail, or middle. Deletion operations on a single-linked list include deleting at the head, tail, or a specific place.

A circular linked list is a modified variant of a single linked list. The last element in a singly linked list points to null; however, in a circular list, the last elements point to the initial element once again. We can carry out several actions on a circular linked list, including list traversal and element searching.

Additionally, we may insert elements into a circular linked list at the head, the tail, or a specific location. Deletion actions on a circular linked list include deleting at the head, the tail, or a particular location.

### 3. Doubly Circular Linked List

A Doubly Circular linked list, also known as a circular two-way linked list, is a more complicated linked list that includes a pointer to both the following and the preceding node in the sequence.

The comparison between a singly & circular linked list is similar to that of a doubly & circular doubly linked list. There is no null in the previous field of the first node of the circular doubly linked list.

Doubly Linked Lists are a type of Linked List in which easy navigation is allowed forward and backwards compared to Single Linked Lists. A bi-directional list called a doubly linked list will enable entries to be traversed both from head to tail & from tail to head.

Key terms for understanding a doubly linked list concept:

• Next: Each link in a linked list that points to the subsequent link is labelled "Next".

### Representation of a Doubly Linked List

Some significant points to keep in mind are:

• A link element named first and last is present in a doubly linked list.
• A data field or fields, as well as the next and prev link fields, are carried by each link.
• Each link is connected to its previous through its previous link.
• The last link carries a null link to indicate the end of the list.

## Operations on Doubly Linked Lists

We may carry out the following operations on a doubly linked list:

• Insertion
• Deletion
• Display

Insertion

The insertion operation in a doubly linked list can be carried out by:

• Inserting at the start of the list
• Inserting at the end of a list
• Inserting at a certain place on the list

Deletion

The deletion operation in a doubly linked list can be carried out by:

• Deleting from the list's beginning
• Deleting from the list's end
• Deleting a Particular Node

1. Due to the next and prior pointers, it supports traversing in both ways compared to the singly linked list (which only supports one direction).
2. Node deletion is simpler than it will be in a singly linked list, and this is because we will need access to the node that came before it to remove a node. Hence, two pointers are required for deletion in a singly linked list. As in a doubly linked list, each node already has the information of the preceding node, eliminating the need for an additional pointer.
3. It is also easy to reverse a doubly linked list. A doubly-linked list may be reversed by switching the next & previous pointers for each node and updating the head node to point to the last node.
4. A new node may be readily added before an existing node

1. Because it must have an additional previous pointer for each node, it uses more memory than a singly linked list.
3. The list's elements can only be accessed sequentially since they are stored in random places and cannot be accessed randomly.
4. Due to the expense of managing more pointers, all operations take more time. For instance, modifying the previous and next pointers is necessary when adding a new node, and it is also essential when deleting a node.

## Uses of Doubly Linked List

• It is applied by navigation systems when forward and back navigation is required.
• The browser utilizes a back & forward button to provide backward & forward navigation of accessed web pages.
• Additionally, a traditional gaming deck of cards is used to represent it.
• Numerous programs also utilize it to add capabilities for undoing and redoing actions.
• MRU/LRU (most/least recently used) cache construction also uses a doubly linked list
• A doubly-linked list can build or program other data structures such as stacks, hash tables, and binary trees.
• The thread scheduler, the component determining which process should run, maintains a doubly-linked list of every active process in many operating systems.