class Node {
constructor(value){
this.value = value;
this.next = null;
}
}
class Queue {
constructor(){
this.left = null;
this.right = null;
this.length = 0;
}
enqueue(value){
if(!value) return null;
let newNode = new Node(value);
if(this.length === 0){
this.left = newNode;
this.right = newNode;
}else{
this.right.next = newNode;
this.right = newNode;
}
this.length++;
}
peek(){
return this.left.value;
}
dequeue(){
if(this.length === 0) return null;
let removeVal = this.left.value
if(this.length === 1){
this.left = null;
this.right = null;
}else
{
this.left = this.left.next;
}
this.length--;
return removeVal ;
}
}
const queue = new Queue();
queue.enqueue(7);
queue.enqueue(77);
queue.enqueue(777);
queue.enqueue(7777);
console.log(queue)
console.log(queue.dequeue())
console.log(queue.dequeue())
console.log(queue.dequeue())
console.log(queue.peek())
console.log(queue.dequeue())
console.log(queue.dequeue())
console.log(queue.dequeue())
console.log(queue.dequeue())