P5
P5
h>
#include<conio.h>
void enqueue();
void dequeue();
void display();
typedef struct node*position;
position front=NULL,rear=NULL,newnode,temp,p;
struct node
{
int data;
position next;
};
void main()
{
int choice;
clrscr();
do
{
printf("\n1.Enqueue \n2.Dequeue \n3.Display \n4.Exit\n");
printf("\n Enter Your Choice : ");
scanf("%d",&choice);
switch(choice)
{
case 1:
enqueue();
break;
case 2:
dequeue();
break;
case 3:
display();
break;
case 4:
exit(0);
}
}
while(choice<5);
}
void enqueue()
{
newnode=(struct node*)malloc(sizeof(struct node));
printf("\n Enter the data to be enqueued :");
scanf("%d",&newnode->data);
newnode->next=NULL;
if(rear==NULL)
front=rear=newnode;
else
{
rear->next=newnode;
rear=newnode;
}
display();
}
void dequeue()
{
if(front==NULL)
printf("\n Empty Queue!!!!!!!Deletion Not Possible ");
else if(front==rear)
{
printf("\n Front element %d is deleted from queue!!!now queue is empty!!!no more
deletion possible!!!\n",front->data);
front=rear=NULL;
}
else
{
temp=front;
front=front->next;
printf("\n Front element %d deleted from queue!!!\n",temp->data);
free(temp);
}
display();
}
void display()
{
p=front;
while(p!=NULL)
{
printf("%d->",p->data);
p=p->next;
}
printf("Null \n");
}