c program to implement queue

Upload: jyoti-goswami

Post on 25-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 C Program to Implement Queue

    1/4

    * C Program to Implement Queue Data Structure using Linked List*/

    #include

    #include

    structnode

    {

    intinfo;

    structnode *ptr;

    }*front,*rear,*temp,*front1;

    intfrontelement();

    voidenq(intdata);

    voiddeq();

    voidempty();

    voiddisplay();

    voidcreate();

    voidqueuesize();

    intcount =0;

    voidmain()

    {

    intno,ch,e;

    printf("\n1 - Enque");

    printf("\n2 - Deque");

    printf("\n3 - Front element");

    printf("\n4 - Empty");

    printf("\n5 - Exit");

    printf("\n6 - Display");

    printf("\n7 - Queue size");

    create();

    while(1)

    {printf("\nEnter choice : ");

    scanf("%d",&ch);

    switch(ch)

    {

    case1:

    printf("Enter data : ");

    scanf("%d",&no);

    enq(no);

    break;

    case2:deq();

  • 7/25/2019 C Program to Implement Queue

    2/4

    break;

    case3:

    e =frontelement();

    if(e !=0)

    printf("Front element : %d",e);

    else

    printf("\nNo front element in Queue as queue is empty");

    break;

    case4:

    empty();

    break;

    case5:

    exit(0);

    case6:

    display();

    break;

    case7:

    queuesize();

    break;

    default:

    printf("Wrong choice, Please enter correct choice ");

    break;

    }

    }

    }

    /* Create an empty queue */

    voidcreate()

    {

    front =rear =NULL;

    }

    /* Returns queue size */

    voidqueuesize()

    {printf("\nQueue size : %d",count);

    }

    /* Enqueing the queue */

    voidenq(intdata)

    {

    if(rear ==NULL)

    {

    rear =(structnode *)malloc(1*sizeof(structnode));

    rear->ptr =NULL;rear->info =data;

  • 7/25/2019 C Program to Implement Queue

    3/4

    front =rear;

    }

    else

    {

    temp=(structnode *)malloc(1*sizeof(structnode));

    rear->ptr =temp;

    temp->info =data;

    temp->ptr =NULL;

    rear =temp;

    }

    count++;

    }

    /* Displaying the queue elements */

    voiddisplay()

    {

    front1 =front;

    if((front1 ==NULL)&&(rear ==NULL))

    {

    printf("Queue is empty");

    return;

    }

    while(front1 !=rear){

    printf("%d ",front1->info);

    front1 =front1->ptr;

    }

    if(front1 ==rear)

    printf("%d",front1->info);

    }

    /* Dequeing the queue */

    voiddeq(){

    front1 =front;

    if(front1 ==NULL)

    {

    printf("\nError: Trying to display elements from empty queue");

    return;

    }

    else

    if(front1->ptr !=NULL){

  • 7/25/2019 C Program to Implement Queue

    4/4

    front1 =front1->ptr;

    printf("\nDequed value : %d",front->info);

    free(front);

    front =front1;

    }

    else

    {

    printf("\nDequed value : %d",front->info);

    free(front);

    front =NULL;

    rear =NULL;

    }

    count--;

    }

    /* Returns the front element of queue */

    intfrontelement()

    {

    if((front !=NULL)&&(rear !=NULL))

    return(front->info);

    else

    return0;

    }

    /* Display if queue is empty or not */voidempty()

    {

    if((front ==NULL)&&(rear ==NULL))

    printf("\nQueue empty");

    else

    printf("Queue not empty");

    }