Queue Implementation using Array: CSU1051P - Shoolini U

Implementation of Queue Using Array

To understand the implementation of a queue using an array using C++

Objective

To understand the implementation of a queue using an array using C++

#include <iostream>
using namespace std;

#define maxSize 5
int queue[maxSize], front = -1, rear = -1;

void Enqueue(int value) {
    if(rear == maxSize - 1) {
        cout << "Queue is full" << endl;
    } else {
        if(front == -1) {
            front = 0;
        }
        rear++;
        queue[rear] = value;
        cout << "Enqueue: " << value << endl;
    }
}

void Dequeue() {
    if(front == -1 || front > rear) {
        cout << "Queue is empty" << endl;
    } else {
        cout << "Dequeue: " << queue[front] << endl;
        front++;
    }
}

int main() {
    Enqueue(1);
    Enqueue(2);
    Enqueue(3);
    Enqueue(4);
    Enqueue(5);

    Dequeue();
    Dequeue();
    Dequeue();
    Dequeue();
    Dequeue();

    return 0;
}

Discussion of Algorithm

  1. Start
  2. Declare and initialize an array with a certain size for the queue
  3. Declare a front and rear variable, both initially set to -1
  4. Implement Enqueue operation (insert at rear)
  5. Implement Dequeue operation (remove from front)
  6. End

Representations


Flow Diagram

   +----------------------------------+
   |                                  |
   |           Start                  |
   |             |                    |
   |             V                    |
   |          Enqueue                 |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |       Queue is full               |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |          Enqueue                 |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |          Enqueue                 |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |          Enqueue                 |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |          Enqueue                 |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |         Dequeue                  |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |       Dequeue: 1                 |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |         Dequeue                  |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |       Dequeue: 2                 |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |         Dequeue                  |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |       Dequeue: 3                 |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |         Dequeue                  |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |       Dequeue: 4                 |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |         Dequeue                  |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |       Dequeue: 5                 |
   |             |                    |
   +----------------------------------+
                  |
                  V
   +----------------------------------+
   |                                  |
   |            Exit                  |
   |             |                    |
   +----------------------------------+

Tabular Dry Run

Enqueue | Dequeue
   1    |   
   2    |   
   3    |   
   4    |   
   5    |   
        |   1
        |   2
        |   3
        |   4
        |   5

Results/Output

Enqueue: 1
Enqueue: 2
Enqueue: 3
Enqueue: 4
Enqueue: 5
Dequeue: 1
Dequeue: 2
Dequeue: 3
Dequeue: 4
Dequeue: 5