Queues - rohit120582sharma/Documentation GitHub Wiki

Queues are a FIFO data structure, all elements are first in first out.

Queues are useful for processing tasks and are foundational for more complex data structures

Insertion and Removal can be done in O(1)


class Node {
	constructor(value){
		this.value = value;
		this.next = null;
	}
}
class Queue {
	constructor(){
		this.size = 0;
		this.first = null;
		this.last = null;
	}
	enqueue(value){
		var newNode = new Node(value);
		if(!this.first){
			this.first = newNode;
			this.last = newNode; 
		}else{
			this.last.next = newNode;
			this.last = newNode;
		}
		this.size++;
		return this.size;
	}
	dequeue(){
		if(!this.first){
			return null;
		}
		var removeNode = this.first;
		if(this.first === this.last){
			this.last = null;
		}else{
			this.first = removeNode.next;
		}
		removeNode.next = null;
		this.size--;
		return removeNode;
	}
}
⚠️ **GitHub.com Fallback** ⚠️