Data Structures: Create a Circular Queue
This commit is contained in:
parent
d7bc07cc9f
commit
5d990d9e6e
42
Data Structures/circularQueue.js
Normal file
42
Data Structures/circularQueue.js
Normal file
@ -0,0 +1,42 @@
|
||||
class CircularQueue {
|
||||
constructor(size) {
|
||||
this.queue = [];
|
||||
this.read = 0;
|
||||
this.write = 0;
|
||||
this.max = size - 1;
|
||||
|
||||
while (size > 0) {
|
||||
this.queue.push(null);
|
||||
size--;
|
||||
}
|
||||
}
|
||||
|
||||
print() {
|
||||
return this.queue;
|
||||
}
|
||||
|
||||
enqueue(item) {
|
||||
// Only change code below this line
|
||||
if (this.queue[this.write] === null) {
|
||||
this.queue[this.write++] = item;
|
||||
if (this.write > this.max) this.write = 0;
|
||||
return item;
|
||||
}
|
||||
return null;
|
||||
// Only change code above this line
|
||||
}
|
||||
|
||||
dequeue() {
|
||||
// Only change code below this line
|
||||
if (this.queue[this.read] === null) {
|
||||
return null;
|
||||
}
|
||||
const item = this.queue[this.read];
|
||||
this.queue[this.read++] = null;
|
||||
if (this.read > this.max) this.read = 0;
|
||||
return item;
|
||||
// Only change code above this line
|
||||
}
|
||||
}
|
||||
|
||||
const q = new CircularQueue(5);
|
Loading…
Reference in New Issue
Block a user