WAP to demonstrate the implementation of various operations on a linear queue and circular represented using LinkedList

0

 

    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:




Post a Comment

0Comments
Post a Comment (0)