WAP to demonstrate the implementation of various operation on a linear Queue or a circular queue represented using a linear array Enque, Deque ,Display

0

 

Aim

 

WAP to demonstrate the implementation of various operation on a linear Queue or a circular queue represented using a linear array

a)     Enque

b)     Deque

c)     Display

d)     Exit

 

    Algorithm:

The steps of enqueue operation are given below:

o   First, we will check whether the Queue is full or not.

o   Initially the front and rear are set to -1. When we insert the first element in a Queue, front and rear both are set to 0.

o   When we insert a new element, the rear gets incremented, i.e., rear=rear+1.

The steps of dequeue operation are given below:

o   First, we check whether the Queue is empty or not. If the queue is empty, we cannot perform the dequeue operation.

o   When the element is deleted, the value of front gets decremented by 1.

o   If there is only one element left which is to be deleted, then the front and rear are reset to -1.

 

Program code:

 

#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:


        

    

Post a Comment

0Comments
Post a Comment (0)