/*--------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--------------*/
super machaaaaaaaa.......nice work dude......it help me very much....
ReplyDelete