Thursday, July 7, 2016

LINEAR QUEUE IN DATA STRUCTURE


Queue


A queue is an ordered collection of items from which items may be deleted at one end called the front if queue and into which items may be inserted at the other end called the rear of queue.

Algorithm to insert element in a linear queue


1.     Initialize the front and rear position
i.e. front = -1 , rear = -1
2.     Repeat step 3 to 4 until rear <= max size -1    where max size is the maximum size of the array
3.     Read the item to be inserted
4.     If (front == -1) then set front =0, rear = 0
i.e. increment front and rear position by one
front= front + 1
rear = rear +1
     else
          increment rear by one
           i.e. rear = rear +1
   END IF
5.     Set Queue[rear]=item
6.     Print Queue overflow message
If front = rear = max size



Algorithm to delete element in a linear queue


1.     Repeat step 2 to 4 until front  >= 0
2.     Set item = queue[front]
3.     If (front == rear)
Set front = -1 , rear = -1
Else
Increase front by one
i.e. front = front + 1
end if
4.     Print the deleted item from queue
5.     If (front == rear) then print queue is empty message and exit.


Program to perform various operation in linear queue implemented in C.


#include<stdio.h>
#include<process.h>
#define maxsize 5
int rear=-1;
int front=-1;
int queue[maxsize];
void add()
{
    int y;
    if(rear==maxsize-1)
    {
        printf("queue overflow");
        return;

    }
    else if(front==-1)
    {
        front=0;
        rear=0;

    }
    else{
        printf("Enter value ");
    scanf("%d",&y);
    queue[rear]=y;
    rear=rear+1;
    }
}
void del()
{
    if(front==-1)
    {
        printf("Underflow");
        return;

    }
    printf("the deleted element is %d",queue[front]);
    if(front==rear)
    {
        front=-1;
        rear=-1;
    }
    else{
        front=front+1;
    }
}
void display()
{
    int i;
    for(i=front;i<rear;i++)
    {
        printf("%d\n",queue[i]);

    }
}
void main()
{
    int a;
    while(1)
    {
    printf("Enter 1 to add 2 to delelt and 3 to dispaly");
    scanf("%d",&a);
    switch(a)
    {
    case 1:
        add();
        break;
    case 2:
        del();
        break;
    case 3:
        display();
        break;
    default :
        exit (0);
    }
}
}

Program to perform various operation in linear queue implemented in C++.



#include<iostream>
#define size 5

using namespace std;

class queue
{
    private:
        int a,front,rear;
        int q[size];

    public:
    //constructor to initialise the value of the queue
        queue()
        {
            front=-1;
            rear=-1;
        }
        //function to push element
        void enqueue(int b)
        {
            if (rear>size-1)
            cout<<"\nQueue overflow\n";
            else
            {
                rear++;
                q[rear]=b;
                cout<<q[rear]<<" enqueued.\n";
            }
        }
        //function to pop the element
        void dequeue()
        {
            if (front<rear)
            {
                cout<<q[++front]<<" is dequeued\n";
                q[front]='\0';

            }
            else
            {
                front=0;
                cout<<"\nQueue underflow\n";

            }
        }
};

int main()
{
    queue q;
    q.enqueue(1);
    q.enqueue(2);
    q.enqueue(3);
    q.enqueue(4);
    q.enqueue(5);
    q.enqueue(6);
    q.enqueue(7);

cout<<"\n";

    q.dequeue();
    q.dequeue();
    q.dequeue();
    q.dequeue();
    q.dequeue();
    q.dequeue();
    q.dequeue();

    return 0;
}


No comments:

Post a Comment