In what kind of situation is it preferable to use a queue over a regular linked list? If the list is singly- or doubly-linked is inconsequential.
A linear list is a sequence of n nodes (possibly zero nodes) where the essential structural property of the list is the relative position between items as they appear in a line. Which is to say, for any given node, we only care about its two adjoining neighbours, i.e. the preceding- and the following nodes.
We might want to be able to perform the following operations,
Depending on the datums stored in the structure we are more likely to perform certain operations more often than others in our application.
Linear lists in which insertions, deletions, and accesses to values occur always at the first or the last node is common, and as such, they have been given special names.
A queue is a linear list for which all insertions are made at one end of the list and all deletions and accesses are made at the other end.
A linked list typically affords us a set of operations that affords us the ability to traverse the entire structure and perform operations on each node (and by extension, all of the nodes).
The pair is distinguished from one another by the set of operations they supply. The two are traditionally implemented in different ways such that their respective operations are more efficient.
A linked list is generally better suited for use-cases that require read/write access to any node in the list.
A queue is better suited for what is known as producer/consumer situations where the producer and consumer are interacting with the data-structure in an asynchronous fashion and where one wants to consume items in the data-structure in the order in which they were inserted, i.e. first in, first out (FIFO).