Professional Documents
Culture Documents
Queue
Queue
Queue
mplementation
____________________________________________________linear queue
https://www.codingninjas.com/codestudio/problems/queue-using-array-or-singly-
linked-list_2099908?
leftPanelTab=0&campaign=LoveBabbar_Codestudio&utm_source=youtube&utm_medium=affilia
te&utm_campaign=LoveBabbar_Codestudio
#include <bits/stdc++.h>
class Queue {
int* arr;
int qfront;
int rear;
int size;
public:
Queue() {
// Implement the Constructor
size = 100001;
arr = new int[size];
qfront = 0;
rear = 0;
}
bool isEmpty() {
if(rear == qfront){
return true;
}
else{
return false;
}
}
int dequeue() {
if(qfront == rear){
return -1;
}
else{
int ans = arr[qfront];
arr[qfront] = -1;
qfront++;
if(qfront == rear){
qfront = 0;
rear = 0;
}
return ans;
}
}
int front() {
if(rear == qfront){
return -1;
}
else{
return arr[qfront];
}
}
};
________________________________________________________circular queue
https://www.codingninjas.com/codestudio/problems/circular-queue_1170058?
leftPanelTab=1&campaign=LoveBabbar_Codestudio&utm_source=youtube&utm_medium=affilia
te&utm_campaign=LoveBabbar_Codestudio
#include <bits/stdc++.h>
class CircularQueue{
public:
// Initialize your data structure.
int* arr;
int front;
int rear;
int size;
CircularQueue(int n){
// Write your code here.
size = n;
arr = new int[size];
front = rear =-1;
}
// Enqueues 'X' into the queue. Returns true if it gets pushed into the stack,
and false otherwise.
bool enqueue(int value) {
// to check whether queue is full.
if (front == 0 && rear == size - 1){
return false;
}
// to check whether queue is full.
else if(rear == (front-1)%(size-1)){
return false;
}
else if(front == -1){ // first element to push
front = rear = 0;
arr[rear] = value;
}
else if(rear == size-1 && front!=0){ //to maintain cyclic nature
rear = 0;
arr[rear] = value;
}
else{
rear++;
arr[rear] = value;
}
return true;
// Dequeues top element from queue. Returns -1 if the stack is empty, otherwise
returns the popped element.
int dequeue(){
if(front == -1 && rear == -1){ // to check queue is enpty
return -1;
}
else if(front==rear){ // single element is present
int ans = arr[front];
front = rear =-1;
return ans;
}
else if(front == size-1){ // to maintain cyclic nature
int ans = arr[front];
front = 0;
return ans;
}
else{
int ans = arr[front];
front++;
return ans;
}
}
};
_____________________________________________________________________________Q.53)
Queqe Reversal
https://practice.geeksforgeeks.org/problems/queue-reversal/1
int a = q.front();
q.pop();
reverse(q);
q.push(a);
return;
}
queue<int> rev(queue<int> q)
{
reverse(q);
return q;
}
_____________________________________________________________________________Q.54)
First negative integer in every window of size k
https://practice.geeksforgeeks.org/problems/first-negative-integer-in-every-window-
of-size-k3345/1
//ans store
if(dq.size()>0){
ans.push_back(A[dq.front()]);
}
else{
ans.push_back(0);
}
}
return ans;
___________________________________________________________________________________
_Q.55) Reverse First K elements of Queue
https://practice.geeksforgeeks.org/problems/reverse-first-k-elements-of-queue/1
while(!s.empty()){
int a = s.top();
q.push(a);
s.pop();
}
https://practice.geeksforgeeks.org/problems/first-non-repeating-character-in-a-
stream1216/1
//queue me push
q.push(A[i]);
while(!q.empty()){
if(count[q.front()]>1){
//repeating character
q.pop();
}
else{
//non repeating character mil gya
ans.push_back(q.front());
break;
}
}
if(q.empty()){
ans.push_back('#');
}
}
return ans;
}
______________________________________________________________________________Q.57)
Circular tour
https://practice.geeksforgeeks.org/problems/circular-tour-1587115620/1