class Node{
constructor(val){
this.value=val;
this.next=null;
}
}
class Queue{
constructor(val){
this.first = null;
this.last=null;
this.length=0;
}
enqueue(val){
const node = new Node(val);
if(!this.last){
this.first = node;
this.last=this.first;
}else{
this.last.next = node;
this.last=node;
}
this.length++;
return this;
}
dequeue(){
if(this.first){
this.first = this.first.next;
this.length--;
if (this.length===0){
this.last = null;
}
}
return this;
}
peek(){
return this.first;
}
}
const myQueue = new Queue();
console.log(myQueue.enqueue(1));
console.log(myQueue.enqueue(5));
console.log(myQueue.peek());
console.log(myQueue.dequeue());
console.log(myQueue.dequeue());