Skip to content
Rohit Sharma edited this page Oct 9, 2018 · 1 revision

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;
	}
}
Clone this wiki locally