* fix: restructure certifications guide articles * fix: added 3 dashes line before prob expl * fix: added 3 dashes line before hints * fix: added 3 dashes line before solutions
2.2 KiB
2.2 KiB
title
| title |
|---|
| Create a Queue Class |
Create a Queue Class
Problem Explanation
-
A Queue is an abstract Data Structure.
-
A Queue folow FIFO/LILO principle.
-
In this challenge we nede to implement
enqueue(),dequeue(),front(),size(),isEmpty()methods.enqueue()- This method adds the element to the queue.dequeue()- This method removes the first element from the queue.front()- This method returns the first element in the queue that'd be dequeue'd.size()- This method returns the size of the queue.isEmpty()- This method returns if the queue is empty.
-
DS Access Search Insert Delete Queue n n 1 1
Solutions
Solution 1 (Click to Show/Hide)
Note: This solution is not exactly a queue, the shift() method used in the dequeue() method is of complexity O(n) and not O(1). However, the advanced solution rectifies this and uses Object(HashTables) instead of Array to implement Queue.
function Queue() {
var collection = [];
this.print = function() {
console.log(collection);
};
this.enqueue = function(val) {
collection.push(val);
};
this.dequeue = function() {
return collection.shift();
};
this.front = function() {
return collection[0];
};
this.size = function() {
return collection.length;
};
this.isEmpty = function() {
return collection.length === 0;
};
}
Solution 2 (Click to Show/Hide)
class Queue {
constructor() {
this.collection = {};
this.start = 0;
this.end = 0;
}
print() {
console.log(this.collection);
}
enqueue(val) {
this.collection[this.end++] = val;
}
dequeue() {
return this.collection[this.start++];
}
front() {
return this.collection[this.start];
}
size() {
return this.end - this.start;
}
isEmpty() {
return this.size() === 0;
}
}