class Dequeue { constructor() { this.items = []; } addFront(element) { this.items.unshift(element); } addRear(element) { this.items.push(element); } removeFront() { return this.items.shift(); } removeRear() { return this.items.pop(); } print() { return this.items.join(' -> ') + ' -> null'; } } const dq = new Dequeue(); dq.addRear(10); dq.addRear(20); dq.addFront(5); dq.removeRear(); dq.addFront(3); console.log(dq.print());
Initially, the dequeue is empty.
addRear(10) adds 10 at rear: [10]
addRear(20) adds 20 at rear: [10, 20]
addFront(5) adds 5 at front: [5, 10, 20]
removeRear() removes 20 from rear: [5, 10]
addFront(3) adds 3 at front: [3, 5, 10]
Final print shows: 3 -> 5 -> 10 -> null
class Dequeue { constructor() { this.items = []; } addFront(element) { this.items.unshift(element); } addRear(element) { this.items.push(element); } removeFront() { return this.items.shift(); } removeRear() { return this.items.pop(); } print() { return this.items.join(' -> ') + ' -> null'; } } const dq = new Dequeue(); dq.addRear(1); dq.addRear(2); dq.addRear(3); dq.removeFront(); dq.removeRear(); console.log(dq.print());
Start with empty dequeue.
addRear(1), addRear(2), addRear(3) results in [1, 2, 3]
removeFront() removes 1: [2, 3]
removeRear() removes 3: [2]
Print shows: 2 -> null
Removing from an empty dequeue usually returns undefined or null because there is nothing to remove.
It does not throw syntax errors or add elements.
class Dequeue { constructor() { this.items = []; } addFront(element) { this.items.unshift(element); } addRear(element) { this.items.push(element); } removeFront() { return this.items.shift(); } removeRear() { return this.items.pop(); } print() { return this.items.join(' -> ') + ' -> null'; } } const dq = new Dequeue(); dq.addRear(7); dq.addFront(3); dq.addRear(9); dq.removeFront(); dq.addFront(1); dq.removeRear(); console.log(dq.print());
Start empty.
addRear(7): [7]
addFront(3): [3, 7]
addRear(9): [3, 7, 9]
removeFront(): removes 3 → [7, 9]
addFront(1): [1, 7, 9]
removeRear(): removes 9 → [1, 7]
Print: 1 -> 7 -> null
class Dequeue { constructor() { this.items = []; } removeFront() { return this.items.shift(); } } const dq = new Dequeue(); console.log(dq.removeFront().toString());
When removing from empty array, shift() returns undefined.
Calling toString() on undefined causes a TypeError.
