Queue

Run Settings
LanguageJavaScript
Language Version
Run Command
class Node { constructor(value) { this.value = value; this.next = null; } } class Queue { constructor() { this.first = null; this.last = null; this.length = 0; } peek(){ return this.first; } enqueue(value) { const newNode = new Node(value); if (this.isEmpty()) { this.first = newNode; this.last = newNode; } else { this.last.next = newNode; this.last = newNode; } this.length++; return this; } dequeue(){ if(this.isEmpty()) return null; if(this.first === this.last) this.last = null; const removedNode = this.first; this.first = this.first.next; this.length--; return removedNode; } isEmpty(){ return this.length === 0; } }
Editor Settings
Theme
Key bindings
Full width
Lines