2.4 Queues (First-In-First-Out)

queue()

 




void push(const value_type& x)

 




void pop()

 




value_type&back()

 




value_type&front()

oldest element




bool empty()

 

<..ex-queue.cxx..>
 #include <queue>
 #include <iostream>
 using namespace std;
 
 int main() {
   queue<int> s;
   s.push(1);  s.push(2);  s.push(3);
   while( ! s.empty() ){
     cout << s.front() << ' ';
     s.pop();
   }
   cout << endl;
   return 0;
 }
-_-_-
1 2 3

Circular Array Representation

     ||||||||||||||
   -||   ||||||   |||-
 ------|||     |||-----
--  ---          ---  --
-   -              -   -
-----              ----|
-en --            --e1--
 -----|||      ||------
  --en-1|||-||||e2 |--
    ||||||...|||||||
          ||||

Circular One-way Linked Representation

     |---|
prev |   |
     |---|
curr |   |
     ----
    ----------------------------------------------|
   ||                                             |
  |-----|||-----||-----||--------||       ----||--|-
  |---|   |--|   |---|   |---|                  |--|
  |/  |   |e1|   |e2 |   |e3 |                  |en|
  |---|   |--|   |---|   |---|                  |--|

Doubly Linked Representation

|-|---|-----||---|-----|-|---|---------           ---------|---|-|
| |e1 | ----||e2 | ----| |e3 | --------           -------- |en | |
--------    --------   --------                          --------

[queues]