Queues can be implemented using a linked list. A linked list is a dynamic data structure where each element (node) contains a reference to the next node in the sequence.
Linked lists do not require preallocated space like arrays and elements can be added or removed in a constant amount of time.
The main disadvantage of implementing a queue with a linked list is that it requires more time to access an element at the end of the queue than one at the beginning because there may be multiple levels of indirection involved.
Queues can also be implemented using static data structures.Static data structures are fixed in size. Arrays are an example of a static data structure.
Dynamic data structures can grow and shrink in size. Memory is allocated and deallocated from the heap (an area of memory specifically used for this purpose).
In some cases, the maximum number of items cannot be determined until run-time so a linked-list implementation would be preferable.