ex) 전체 연산 : 삽입 3 - 삽입 5 - 삭제 삽입 7 - 삭제 - 삽입 8 - 삭제 - 삽입 2. 삽입 9
const arr = []
arr.push(3) // [3]
arr.push(5) // [3,5]
arr.pop() // [3]
arr.push(7) // [3,7]
arr.pop() // [3]
arr.push(8) // [3,8]
arr.pop() // [3]
arr.push(2) // [3,2]
arr.push(9) // [3,2,9]
class Queue{
constructor(){ //생성자
this.headIndex = 0;
this.tailIndex = 0;
}
enqueue(item){ //삽입
this.item[this.tailIndex] = item;
this.tailIndex++
}
//꼬리에 위치에 item을 넣어주고 꼬리 위치를 한칸 증가
dequeue(){ //추출
const item = this.items[this.headIndex];
delete this.items[this.headIndex];
this.headIndex++;
return item;
}
// 현재 헤드인덱스가 가리키는 위치에서 아이템을 꺼내서 리턴 해당 아이템이 들어있던 메모리를 할당 해제 헤드 인덱스를 증가한다.
peek(){ //
return this.items[this.headIndex];
}
// 헤드인덱스에있는 그 아이템을 리턴 (원소 꺼내기)
getLength(){
return this.tailIndex - this.headIndex
}
// 큐에 포함되어있는 아이템을 알고 싶을때 꼬리인덱스와 헤드인덱스를 빼주면 나온다.
}
ex:) 삽입 5 - 삽입 2- 삽입 3 - 삽입 7 - 삭제 - 삽입 1 - 삽입 4 - 삭제
queue = new Queue(); // 구현된 큐 라이브러리 사용
queue.enqueue(5)
queue.enqueue(2)
queue.enqueue(3)
queue.enqueue(7)
queue.dequeue()
queue.enqueue(1)
queue.enqueue(4)
queue.dequeue()
while(queue.getLength() !== 0){
console.log(queue.dequeue());
}
결과값은 3,7,1,4