#include <iostream>
// include the header file for the queue "queue.h"
#include "queueC.h"
 

main()
{
 

    // dynamically create the queue using new
    queue *Q1 = new queue;

    int x;

    // Add an element to the (back of the) queue
    Q1->Enqueue(10);

    // Display the Front element on the queue i.e., 10
    x=Q1->GetFront();
    cout<<"The front element is: "<<x<<endl;

    // Add 9 more elements to the (back of the) queue

    Q1->Enqueue(20);
    Q1->Enqueue(30);
    Q1->Enqueue(40);
    Q1->Enqueue(50);
    Q1->Enqueue(60);
    Q1->Enqueue(70);
    Q1->Enqueue(80);
    Q1->Enqueue(90);
    Q1->Enqueue(100);

    //Display the Front element of the queue, i.e., 10

    x=Q1->GetFront();
    cout<<"The front element is: "<<x<<endl;

    // Add another element to the Back of the queue
    // This will result in an error as the queue is full

    Q1->Enqueue(110);

    // Remove the element from the Front of the queue, i.e., 10

    Q1->Dequeue();

    // Display the Front element of the queue i.e., 20

    x=Q1->GetFront();
    cout<<"The front element is: "<<x<<endl;

    // Remove the element from the Front of the queue, i.e., 20

    Q1->Dequeue();

    // Display the Front element of the queue i.e., 30

    x=Q1->GetFront();
    cout<<"The front element is: "<<x<<endl;

    // Add an element to the Back of the queue

    Q1->Enqueue(110);

    // Display the Front element of the queue, i.e., 30

    x=Q1->GetFront();
    cout<<"The front element is: "<<x<<endl;
 
    // Empty the queue and add one element to the queue

    Q1->MakeEmpty();
    Q1->Enqueue(200);

    //Display the Front of the queue i.e., 200

    x=Q1->GetFront();
    cout<<"The front element is: "<<x<<endl;
}