2.2 KiB
2.2 KiB
title
| title |
|---|
| Create a Queue Class |
Create a Queue Class
Method:
-
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
Solution:
Basic:
Note:
- This solution is not exactly a queue, the shift() method used in the dequeue() method is of complexity
O(n)and notO(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;
}
}
Advanced - ES6 class syntax:
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;
}
}