Tuesday, 26 April 2016

Queue with the help of dynamic array in C

queues can implemented in various ways 
now we will discuss the implementation of queue with the help of dynamic array 

#include<stdio.h>
struct queue1
{
    int *m;
    int size;
    int front;
    int rear;

};
typedef struct queue1 queue;
void insertion(queue *q1,int value)
{
    if(q1->front == -1)
    {
        q1->front++;
        q1->m[++q1->rear]=value;
    }
    else if(q1->rear == q1->size-1)
    {
        printf("the queue is already full ");

    }
    else
    {
        q1->m[++q1->rear]=value;
    }

}

int deletion(queue* q1)
{
    if(q1->front == -1)
    {
        printf ("the queue is already empty");
    }
    if (q1->rear == 1 )
    {
        q1->rear = -1;
        q1->front = -1;

    }
    else
    {
        int i = q1->front ;
        for (i=q1->front ; i<q1->rear; i++)
        {
            q1->m[i]=q1->m[i+1];

        }
        q1->rear--;
        return q1->m[q1->rear+1];
    }

}

void print (queue *q1)
{
    int i= q1->front;
    if (q1->front != -1)
    {


    for(i=q1->front;i<=q1->rear;i++)
    {
        printf("%d \n",q1->m[i]);
    }
    printf("end");}
}


void main()
{
    queue q1;
    printf("enter the size of the array");
    scanf("%d",&q1.size);
    q1.m= (int *)malloc(sizeof(int)*q1.size);
    q1.front = -1;
    q1.rear = -1;
    insertion(&q1,10);
    insertion(&q1,11);
    insertion(&q1,15);
    insertion(&q1,7);
    print(&q1);
    int a =deletion(&q1);
    print(&q1);

}

No comments:

Post a Comment