Answers for "how to create a queue in javascript from scratch?"

1

how to create a queue in javascript from scratch?

/* Class representing unusual
   situations occurring when
   manipulating the queue */
class QueueError extends Error {
  constructor(message) {
    super(message);
    this.name = "Queue Error";
  }
}
// FIFO queue data structure
class Queue {
  constructor() {
    this.items = {}; // object used to hold elements
    this.front = 0; // index of front element
    this.rear = 0; // idx of next available spot in queue
  }
  // Getter methods
  get size() {
    return this.rear - this.front; // nb of items in queue
  }
  get isEmpty() {
    return this.size === 0;
  }
  // enqueue: insert an element
  // at rear end of queue
  enqueue(item) {
    this.items[this.rear] = item;
    this.rear++;
  }
  // Access front element
  accessFront() {
    if(this.isEmpty) {
      throw new QueueError("Queue is empty!");
    }
    return this.items[front];
  }
  // dequeue: remove front element
  dequeue() {
    if(this.isEmpty) {
      throw new QueueError("Queue is empty!");
    }
    const toReturn = this.items[this.front];
    delete this.items[this.front];
    this.front++;
    return toReturn;
  }
}

const queue = new Queue();
try {
  queue.accessFront(); // Generates an error
} catch(err) {
  console.log(err.message); // Queue is empty!
}
// Add elements 1, 2, and 3 to queue
for(let idx=1; idx<=3; idx++) {
  queue.enqueue(idx);
}
console.log("Size:", queue.size); // Size: 3
const queueContent = [];
while(!queue.isEmpty) {
  queueContent.push(queue.dequeue() + " ");
}
console.log("Queue:", queueContent.join("")); // Queue: 1 2 3
Posted by: Guest on April-15-2022

Code answers related to "how to create a queue in javascript from scratch?"

Code answers related to "Javascript"

Browse Popular Code Answers by Language