Code

class Queue<T> {  private items: T[] = [];  private maxSize: number;  constructor(maxSize: number = 100) {    this.maxSize = maxSize;  }  enqueue(item: T): boolean {    if (this.maxSize > 0 && this.items.length >= this.maxSize) {      return false;    }    this.items.push(item);    return true;  }  dequeue(): T | undefined {    return this.items.shift();  }  peek(): T | undefined {    return this.items[0];  }  isEmpty(): boolean {    return this.items.length === 0;  }  size(): number {    return this.items.length;  }  clear(): void {    this.items = [];  }  toArray(): T[] {    return [...this.items];  }}export default Queue;
import Queue from './Queue';const queue = new Queue<string>(100);queue.enqueue('first');queue.enqueue('second');queue.enqueue('third');console.log('Size:', queue.size());console.log('Peek:', queue.peek());while (!queue.isEmpty()) {  console.log('Dequeued:', queue.dequeue());}

Comments

No comments yet. Be the first!