AIM
WAP to demonstrate the implementation of various operations on a linear queue and circular represented using a linear array.
    
    
    Algorithm
Enqueue Operation:
- If rear is set to NULL then set front and rear to temp and return.Else set rear‘s next to temp and then move rear to temp.
- Dequeue Operation:
- If front is set to NULL return.
- Initialize temp with front and set front to its next.If front is equal to NULL then set rear to NULL. Delete temp.
Program:
#include <iostream>
using namespace std;
struct node
{
    int data;
    struct node *next;
};
struct node *front = NULL;
struct node *rear = NULL;
struct node *temp;
void Insert()
{
    int val;
    cout << "Insert the
element in queue : " << endl;
    cin >> val;
    if (rear == NULL)
    {
        rear = (struct node *)malloc(sizeof(struct
node));
        rear->next = NULL;
        rear->data = val;
        front = rear;
    }
    else
    {
        temp = (struct node *)malloc(sizeof(struct
node));
        rear->next = temp;
        temp->data = val;
        temp->next = NULL;
        rear = temp;
    }
}
void Delete()
{
    temp = front;
    if (front == NULL)
    {
        cout << "Underflow"
<< endl;
        return;
    }
    else if (temp->next != NULL)
    {
        temp = temp->next;
        cout << "Element
deleted from queue is : " << front->data << endl;
        free(front);
        front = temp;
    }
    else
    {
        cout << "Element
deleted from queue is : " << front->data << endl;
        free(front);
        front = NULL;
        rear = NULL;
    }
}
void Display()
{
    temp = front;
    if ((front == NULL) && (rear
== NULL))
    {
        cout << "Queue
is empty" << endl;
        return;
    }
    cout << "Queue elements
are: ";
    while (temp != NULL)
    {
        cout << temp->data
<< " ";
        temp = temp->next;
    }
    cout << endl;
}
int main()
{
    int ch;
    cout << "1) Insert element
to queue" << endl;
    cout << "2) Delete element
from queue" << endl;
    cout << "3) Display all
the elements of queue" << endl;
    cout << "4) Exit" <<
endl;
    do
    {
        cout << "Enter
your choice : " << endl;
        cin >> ch;
        switch (ch)
        {
        case 1:
            Insert();
            break;
        case 2:
            Delete();
            break;
        case 3:
            Display();
            break;
        case 4:
            cout <<
"Exit" << endl;
            break;
        default:
            cout <<
"Invalid choice" << endl;
        }
    } while (ch != 4);
    return 0;
}
Output:


