Open In App
Related Articles

Advantages, Disadvantages, and uses of Doubly Linked List

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

A Doubly Linked List(DLL) is a linear data structure that contains an extra pointer, typically called the previous pointer, together with the next pointer and data which are there in a singly linked list. Below is the image to illustrate the same.

Advantages Of DLL:

  • Reversing the doubly linked list is very easy.
  • It can allocate or reallocate memory easily during its execution.
  • As with a singly linked list, it is the easiest data structure to implement.
  • The traversal of this doubly linked list is bidirectional which is not possible in a singly linked list.
  • Deletion of nodes is easy as compared to a Singly Linked List. A singly linked list deletion requires a pointer to the node and previous node to be deleted but in the doubly linked list, it only required the pointer which is to be deleted.’
  • Doubly linked lists have a low overhead compared to other data structures such as arrays.
  • Implementing graph algorithms.

Disadvantages Of DLL:

  • It uses extra memory when compared to the array and singly linked list.
  • Since elements in memory are stored randomly, therefore the elements are accessed sequentially no direct access is allowed.
  • Traversing a doubly linked list can be slower than traversing a singly linked list.
  • Implementing and maintaining doubly linked lists can be more complex than singly linked lists.

Uses Of DLL:

  • It is used in the navigation systems where front and back navigation is required.
  • It is used by the browser to implement backward and forward navigation of visited web pages that is a back and forward button.
  • It is also used to represent a classic game deck of cards.
  • It is also used by various applications to implement undo and redo functionality.
  • Doubly Linked List is also used in constructing MRU/LRU (Most/least recently used) cache.
  • Other data structures like stacks, Hash Tables, Binary trees can also be constructed or programmed using a doubly-linked list.
  • Also in many operating systems, the thread scheduler(the thing that chooses what process needs to run at which time) maintains a doubly-linked list of all processes running at that time.
  • Implementing LRU Cache.
  • Implementing Graph algorithms.
Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks!

Commit to GfG's Three-90 Challenge! Purchase a course, complete 90% in 90 days, and save 90% cost click here to explore.
Last Updated : 16 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads
Complete Tutorials