From 6f8c29ca08141240fe6a87e9799bfe95f3aa47c6 Mon Sep 17 00:00:00 2001 From: Simran Priyadarshini <150437651+Smrn-prydrshini@users.noreply.github.com> Date: Sat, 26 Oct 2024 02:50:32 +0530 Subject: [PATCH] Create Reverse queue implementation.js This code implements a basic queue data structure in JavaScript with essential operations: enqueue, dequeue, peek, check if empty, get size, reverse, and display. It uses the prompt function to allow user interaction, enabling users to perform queue operations through a simple menu. The queue is implemented as a class, providing a clear and organized way to manage the elements. Users can enqueue items, dequeue them, view the front item, check if the queue is empty, get the current size, reverse the queue, and display its contents. --- Code/Reverse queue implementation.js | 102 +++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 Code/Reverse queue implementation.js diff --git a/Code/Reverse queue implementation.js b/Code/Reverse queue implementation.js new file mode 100644 index 0000000000..8c5b283b33 --- /dev/null +++ b/Code/Reverse queue implementation.js @@ -0,0 +1,102 @@ +class Queue { + constructor() { + this.items = []; + } + + enqueue(element) { + this.items.push(element); + } + + dequeue() { + if (this.isEmpty()) { + return "Queue is empty"; + } + return this.items.shift(); + } + + peek() { + if (this.isEmpty()) { + return "Queue is empty"; + } + return this.items[0]; + } + + isEmpty() { + return this.items.length === 0; + } + + size() { + return this.items.length; + } + + reverse() { + const reversedQueue = new Queue(); + while (!this.isEmpty()) { + reversedQueue.enqueue(this.dequeue()); + } + this.items = reversedQueue.items; + } + + display() { + if (this.isEmpty()) { + console.log("Queue is empty"); + } else { + console.log(this.items.join(" <- ")); + } + } +} + + +function queueOperations() { + const queue = new Queue(); + let choice; + + do { + choice = prompt(`Choose an operation: + 1. Enqueue + 2. Dequeue + 3. Peek + 4. Check if Empty + 5. Get Size + 6. Reverse Queue + 7. Display Queue + 8. Exit`); + + switch (choice) { + case '1': + const element = prompt("Enter an element to enqueue:"); + queue.enqueue(element); + console.log(`Enqueued: ${element}`); + break; + case '2': + const dequeuedElement = queue.dequeue(); + console.log(`Dequeued: ${dequeuedElement}`); + break; + case '3': + console.log(`Front Element: ${queue.peek()}`); + break; + case '4': + console.log(`Is Queue Empty? ${queue.isEmpty()}`); + break; + case '5': + console.log(`Queue Size: ${queue.size()}`); + break; + case '6': + queue.reverse(); + console.log("Queue reversed."); + break; + case '7': + console.log("Current Queue:"); + queue.display(); + break; + case '8': + console.log("Exiting..."); + break; + default: + console.log("Invalid choice. Please try again."); + } + } while (choice !== '8'); +} + + +queueOperations();