#include<stdio.h>
#include<conio.h>
void insertion();
void deletion();
void traverse();
struct node
{ int num;
struct node *next;
}*front=NULL,*rear=NULL;
typedef struct node node;
typedef struct node* nptr;
void main()
{ char choice;
while(1)
{
clrscr();
printf("DYNAMIC QUEUE\n\n");
printf(" 1.Insertion\n");
printf(" 2.Deletion\n");
printf(" 3.Traverse\n");
printf(" 4.EXIT\n");
printf(" Enter your choice: ");
fflush(stdin);
scanf("%c",&choice);
switch(choice)
{ case '1': insertion();
break;
case '2': deletion();
break;
case '3': traverse();
break;
case '4': exit(0);
default: printf("\n\ninvalid choice");
}
getch();
}
}
void insertion()
{ nptr p;
int item;
if((p=((nptr)malloc(sizeof(node))))!=NULL)
{ printf("\n enter the item: ");
scanf("%d",&item);
p->num=item;
if(rear==NULL||front==NULL)
{ front=rear=p;
p->next=NULL;
}
else
{ p->next=NULL;
rear->next=p;
rear=p;
}
}
else
{ printf("\n Overflow");
}
}
void deletion()
{ nptr p;
if(front==NULL)
{ printf("\n underflow");
}
else
if(front==rear)
{ p=front;
printf("\n %d is deleted",p->num);
front=rear=NULL;
free(p);
}
else
{ p=front;
printf("\n %d is deleted",p->num);
front=front->next;
free(p);
}
}
void traverse()
{ nptr p;
p=front;
if(front==NULL)
{ printf("\n stack is empty");
}
else
{ printf("\n QUEUE: ");
while(p!=NULL)
{ printf(" %d",p->num);
p=p->next;
}
}
}
Comments
Post a Comment