1.1Banker’s Queue

A Queue is nothing but a FIFO data structure. A Banker’s Queue is a
amortized queue obtained using Bankers method. It provides a amortized
running time of O(1) for head,
tail and enqueue
operations. To obtain this amortized running time, the data structure
uses the techniques, lazy evaluation and memoization. Banker’s Queue
internally uses Streams for lazy evaluation. For Streams, see
Streams

1.2Physicist’s Queue

A Queue is nothing but a FIFO data structure. A Physicist’s queue ia a
Amortized queues obtained by Physicist’s method. Provides a amortized
running time of O(1) for head, tail
and enqueue operations. Physicists’s Queue uses lazy evaluation
and memoization to get this amortized running time.

1.3Implicit Queue

Queues obtained by applying the technique called
Implicit Recursive Slowdown. Provides a amortized
running time of O(1) for the operations
head, tail and enqueue.
Implicit Recursive Slowdown combines
laziness and technique called Recursive Slow-Down developed by
Kaplan and Tarjan in their paper
Persistant Lists with Catenation via Recursive Slow-Down.

1.4Bootstraped Queue

Bootstrapped Queue use a structural bootstrapping technique called
Structural Decomposition. The data structure gives a worst
case running time of O(1) for the operation
head and O(log*(n)) for
tail and enqueue. Internally uses Physicist’s Queue.

1.5Real-Time Queue

Real-Time Queues eliminate the amortization by employing laziness and
a technique called Scheduling. The data structure gives a worst
case running time of O(1) for the operations
head, tail and enqueue.

1.6Hood-Melville Queue

Similar to Real-Time Queues in many ways. But the implementation is
much more complicated than Real-Time Queue. Uses a technique called
Global Rebuilding. The data structure gives a worst case
running time of O(1) for the operations
head, tail and enqueue.