Skip to content

Double-ended Queue

class Deque {
private items: number[];
constructor() {
this.items = [];
}
// Add to front
addFront(item: number): void {
this.items.unshift(item);
}
// Add to back
addBack(item: number): void {
this.items.push(item);
}
// Remove from front
removeFront(): number | undefined {
return this.items.shift();
}
// Remove from back
removeBack(): number | undefined {
return this.items.pop();
}
}
const deque = new Deque();
deque.addBack(1); // [1]
deque.addFront(2); // [2, 1]
deque.addBack(3); // [2, 1, 3]
console.log(deque.removeFront()); // Output: 2 (now [1, 3])
console.log(deque.removeBack()); // Output: 3 (now [1])