mirror of
https://hub.njuu.cf/TheAlgorithms/C-Plus-Plus.git
synced 2023-10-11 13:05:55 +08:00
98 lines
1.8 KiB
C++
98 lines
1.8 KiB
C++
/*
|
|
Write a program to implement Queue using linkedlist.
|
|
*/
|
|
#include<iostream>
|
|
|
|
|
|
struct linkedlist{
|
|
int data;
|
|
linkedlist *next;
|
|
|
|
};
|
|
class stack_linkedList{
|
|
public:
|
|
linkedlist *front;
|
|
linkedlist *rear;
|
|
|
|
stack_linkedList(){
|
|
front=rear=NULL;
|
|
}
|
|
void enqueue(int);
|
|
int dequeue();
|
|
void display();
|
|
|
|
};
|
|
void stack_linkedList::enqueue(int ele){
|
|
|
|
linkedlist *temp=new linkedlist();
|
|
temp->data=ele;
|
|
temp->next=NULL;
|
|
|
|
if(front==NULL)
|
|
front=rear=temp;
|
|
else{
|
|
rear->next=temp;
|
|
rear=temp;
|
|
}
|
|
}
|
|
int stack_linkedList::dequeue(){
|
|
linkedlist *temp;
|
|
int ele;
|
|
if(front==NULL)
|
|
std::cout<<"\nStack is empty";
|
|
else{
|
|
temp=front;
|
|
ele=temp->data;
|
|
if(front==rear) //if length of queue is 1;
|
|
rear=rear->next;
|
|
front=front->next;
|
|
delete(temp);
|
|
}
|
|
return ele;
|
|
}
|
|
void stack_linkedList::display(){
|
|
|
|
if(front==NULL)
|
|
std::cout<<"\nStack is empty";
|
|
|
|
else {
|
|
|
|
linkedlist *temp;
|
|
temp=front;
|
|
while(temp!=NULL){
|
|
std::cout<<temp->data<<" ";
|
|
temp=temp->next;
|
|
}
|
|
}
|
|
}
|
|
|
|
int main(){
|
|
|
|
int op,data;
|
|
stack_linkedList ob;
|
|
std::cout<<"\n1. enqueue(Insertion) ";
|
|
std::cout<<"\n2. dequeue(Deletion)";
|
|
std::cout<<"\n3. Display";
|
|
std::cout<<"\n4. Exit";
|
|
|
|
while(1){
|
|
std::cout<<"\nEnter your choice ";
|
|
std::cin>>op;
|
|
if(op==1)
|
|
{
|
|
std::cout<<"Enter data ";
|
|
std::cin>>data;
|
|
ob.enqueue(data);
|
|
}
|
|
else if(op==2)
|
|
data=ob.dequeue();
|
|
else if(op==3)
|
|
ob.display();
|
|
else if(op==4)
|
|
exit(0);
|
|
else
|
|
std::cout<<"\nWrong choice ";
|
|
|
|
}
|
|
}
|