Priority Queue
Priority Queue
h>
using namespace std;
class Node{
public:
int roll_no;
int priority;
Node* next;
Node(int data, int prio, Node*
next=NULL):roll_no(data),priority(prio),next(next){}
};
class Queue{
public:
Node* start;
Node* end;
Queue():start(nullptr),end(nullptr){}
if(start->priority>=m){
temp->next=start;
start=temp;
return;
}
Node* front=start;
Node* prev=NULL;
while(front!=NULL){
if(front->priority>=m){
break;
}
prev=front;
front=front->next;
}
temp->next=front;
prev->next=temp;
if(front==NULL){
end=temp;
}
void pop(){
if(start==NULL){
cout<<"Queue is empty"<<endl;
return;
}
Node* temp=start;
start=start->next;
delete(temp);
if(start==NULL){
end=NULL;
}
}
void print(){
if(start == NULL){
cout<<"Queue is empty"<<endl;
return;
}
Node* temp=start;
while(temp!=NULL){
cout<<temp->roll_no<<" ";
temp=temp->next;
}
}
};
int main(){
int n;
cin>>n;
Queue* vc = new Queue();
for(int i=0;i<n;i++){
int p,q;
cin>>p;
cin>>q;
vc->insert(p,q);
}
cout<<"Priority Queue: ";
vc->print();