class Queue{
constructor(){
this.items = {}
this.head = 0
this.tail = 0
}
enqueue(item){
this.items[this.tail] = item
this.tail++
}
dequeue(){
delete this.items[this.head]
this.head++
return this.items[this.head]
}
isEmpty(){
return this.tail - this.head === 0
}
}
constructor로 들어올 아이템을 보관할 객체 혹은 배열을 하나 선언해준다
head에는 첫번째 인덱스, tail에는 마지막 인덱스를 지정해줄 예정이나
값이 추가되지 않은 상태이기에 0으로 선언해주고 밑에 추가 , 삭제 할때 개별적으로 조정해준다
enqueue 메서드를 만든다 끝에 값을 추가해줄 메서드
파라미터로 받아 온 item을 items[tail]에 추가
tail에는 1을 더해준다
dequeue 메서드는 가장 앞에 있는 값을 삭제해준다
items[head]를 삭제하고 1을 더해준다 후에 리턴한다
isEmepty 메서드는 길이가 0이면 true 아니면 false를 반환해준다