Skip to content

Commit 4aafa66

Browse files
committed
Optimised queue implementation
1 parent db4211d commit 4aafa66

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

queue-object.js

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
class Queue {
2+
constructor() {
3+
this.items = {};
4+
this.front = 0;
5+
this.rear = 0;
6+
}
7+
8+
enqueue(element) {
9+
this.items[this.rear] = element;
10+
this.rear++;
11+
}
12+
13+
dequeue() {
14+
const item = this.items[this.front];
15+
delete this.items[this.front];
16+
this.front++;
17+
return item;
18+
}
19+
20+
peek() {
21+
return this.items[this.front];
22+
}
23+
24+
size() {
25+
return this.rear - this.front;
26+
}
27+
28+
isEmpty() {
29+
return this.rear - this.front === 0;
30+
}
31+
32+
print() {
33+
console.log(this.items);
34+
}
35+
}
36+
37+
const queue = new Queue();
38+
console.log(queue.isEmpty());
39+
queue.enqueue(10);
40+
queue.enqueue(20);
41+
queue.enqueue(30);
42+
console.log(queue.size());
43+
queue.print();
44+
console.log(queue.dequeue());
45+
console.log(queue.peek());
46+
console.log(queue.isEmpty());
47+
queue.print();

0 commit comments

Comments
 (0)