
| 
 | 
 
 | 


class Queue<T> {
  T deque() { ... }
  void enque(T v) { ... }
  }
|  | 
 
 | 
| 
 
 | 
 
 | |
| Stack (LIFO) order | Queue (fifo) order | 



| 
 | 
 
 | 

| 
 | 
 | 
head = (head + 1) % n
    tail = (tail + 1) % n
    
bool isEmpty() { return size == 0; }
| List | Queue | Queue | Queue | |
|---|---|---|---|---|
| (CBuffer) | (List) | (DArray) | ||
| create | fast | fast | fast | fast | 
| delete | fast | fast | fast | fast | 
| add | slow | fast | fast | fast* | 
| remove | slow | fast | fast | fast* | 
| traversal | fast | na | na | na | 
| navigation | fast | na | na | na | 
| dynamic | no | no | yes | yes | 
* Most of the time.
Values added or removed at either end.


create() may have a priority comparator argument. 
    enqueue() and dequeue() may have 
a priority argument.
      | This page last modified on 2011 February 9. |