Queue using linked list

/*--------QUEUE USING LINKED LIST--------*/

#include<stdio.h>
#include<stdlib.h>

struct node
{
 int data;
 struct node *link;
}*header=NULL,*q=NULL,*p;

typedef struct node N;

void enqueue()
{
    int n;
    p=(N *)malloc(sizeof(N));
    printf("\nEnter a number:");
//read a number to enqueue
    scanf("%d",&n);
//set data of node p to entered number
    p->data=n;
    p->link=NULL;
//if queue is empty
    if(header==NULL)
     {
//set p as rear of queue
      header=p;
     }
//if queue is not empty
    else
     {
     q=header;
     while(q->link!=NULL)
     {
      q=q->link;
     }
         q->link=p;
    }

}
void dequeue()
{

//if queue is empty
    if(header==NULL)
      printf("\nqueue underflow\n");
//if queue is not empty
    else
    {
//set link of front as "new" front
      p=header;
      header=p->link;
        printf("\n%d deleted\n",p->data);
      free(p);
    }
}

void view()
{
    if(header==NULL)
      printf("\nqueue empty\n");
    else
    {
      printf("\n[");
      q=header;
      while(q!=NULL)
      {
            printf(" %d",q->data);
        q=q->link;
      }
      printf(" ]\n ");
    }
}

main()
{
    int c;

    while(1)
    {
       printf("\n1.enqueue 2.dequeue 3.view 4.exit\n");
      scanf("%d",&c);
      switch(c)
      {
        case 1:enqueue();
        break;
        case 2:dequeue();
        break;
        case 3:view();
        break;
        case 4:exit(0);
        break;
        default:printf("\nInvalid entry\n");
        break;
      }
    }
}




/*----------------by NillVP--------------*/

Comments

  1. super machaaaaaaaa.......nice work dude......it help me very much....

    ReplyDelete

Post a Comment