Skip to content

Commit 41955c0

Browse files
Merge pull request #571 from AnirudhPhophalia/patch-1
Add Queue class with basic queue operations
2 parents 5b600f8 + 98d6299 commit 41955c0

File tree

1 file changed

+48
-0
lines changed
  • JavaScript/data_structures/queue

1 file changed

+48
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
class Queue {
2+
constructor() {
3+
this.items = [];
4+
}
5+
6+
// Add element to rear
7+
enqueue(element) {
8+
this.items.push(element);
9+
}
10+
11+
// Remove element from front
12+
dequeue() {
13+
if (this.isEmpty()) return "Underflow";
14+
return this.items.shift();
15+
}
16+
17+
// Get front element
18+
peek() {
19+
if (this.isEmpty()) return "No elements in Queue";
20+
return this.items[0];
21+
}
22+
23+
// Check if empty
24+
isEmpty() {
25+
return this.items.length === 0;
26+
}
27+
28+
// Size of queue
29+
size() {
30+
return this.items.length;
31+
}
32+
33+
// Display queue
34+
print() {
35+
console.log(this.items.join(" <- "));
36+
}
37+
}
38+
39+
// Example usage:
40+
const q = new Queue();
41+
q.enqueue(10);
42+
q.enqueue(20);
43+
q.enqueue(30);
44+
q.print(); // Output: 10 <- 20 <- 30
45+
console.log(q.dequeue()); // Output: 10
46+
console.log(q.peek()); // Output: 20
47+
console.log(q.size()); // Output: 2
48+
console.log(q.isEmpty()); // Output: false

0 commit comments

Comments
 (0)