You are on page 1of 4

//Implementation of queue as a linked list

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<process.h>
class queue
{
int rno;
char n[15];
float per;
public:
queue *next;
void getd()
{
cout<<"\nEnter Roll No:";
cin>>rno;
cout<<"Enter Name:";
gets(n);
cout<<"Enter Percentage:";
cin>>per;
next=NULL;
}
void showd()
{
cout<<"\nRoll No:"<<rno<<"\nName:"<<n<<"\nPercentage:"<<per;
}
};
queue *newptr=NULL,*ptr=NULL,*front=NULL,*rear=NULL;
void main()
{
clrscr();
int ch;
menu:
cout<<"\n\nMenu\n1.Push\n2.Pop\n3.Traverse\n4.Exit\nEnter your choice:";
cin>>ch;
switch(ch)
{
case 1:
newptr=new queue;
if(!newptr)
{
cout<<"\n\t\aMemory Allocation Error!";
getch();
exit(0);
}
newptr->getd();
if(front==NULL)
{
front=newptr;
rear=newptr;
}
else
{
rear->next=newptr;
rear=rear->next;
rear->next=front;

}
break;
case 2:
if(front==NULL)
cout<<"Queue underflow (does not exist)";
else
{
ptr=front;
if(front==rear)
{
front=NULL;
rear=NULL;
}
else
{
front=front->next;
rear->next=front;
}
cout<<"\nDeleted Element:";
ptr->showd();
delete ptr;
}
break;
case 3:
if(front==NULL)
cout<<"Queue does not exist";
else
{
ptr=front;
while(ptr->next!=front)
{
ptr->showd();
ptr=ptr->next;
}
ptr->showd();
}
break;
case 4:
getch();
exit(0);
default:
cout<<"\nWrong Choice Entered,Please Re-enter";
}
goto menu;
}
//OUTPUT
Menu
1.Push
2.Pop
3.Traverse
4.Exit
Enter your choice:1
Enter Roll No:1
Enter Name:Naman Bagga
Enter Percentage:94.2

Menu
1.Push
2.Pop
3.Traverse
4.Exit
Enter your choice:1
Enter Roll No:10
Enter Name:Arvind S
Enter Percentage:92

Menu
1.Push
2.Pop
3.Traverse
4.Exit
Enter your choice:1
Enter Roll No:6
Enter Name:Ankur Banerjee
Enter Percentage:93

Menu
1.Push
2.Pop
3.Traverse
4.Exit
Enter your choice:3
Roll No:1
Name:Naman Bagga
Percentage:94.2
Roll No:10
Name:Arvind S
Percentage:92
Roll No:6
Name:Ankur Banerjee
Percentage:93
Menu
1.Push
2.Pop
3.Traverse
4.Exit
Enter your choice:2
Deleted Element:
Roll No:1
Name:Naman Bagga
Percentage:94.199997
Menu

1.Push
2.Pop
3.Traverse
4.Exit
Enter your choice:3
Roll No:10
Name:Arvind S
Percentage:92
Roll No:6
Name:Ankur Banerjee
Percentage:93
Menu
1.Push
2.Pop
3.Traverse
4.Exit
Enter your choice:4

You might also like