먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out) 형식의 자료구조이다.
은행에 갔다고 가정하자.
먼저 번호표를 뽑았으면(First In) 먼저 은행원과 상담을 받고 갈 수 있다(First Out)
이것이 바로 queue 자료구조의 형식이다 (FIFO, First In First Out)
queue에 넣는 것은 push(), 빼는 것은 shift()이다.
queue 자료구조에 1에서 5의 숫자를 넣고 빼는 과정
const queue = [];
// queue = []
for (let i = 1; i <= 5; i++) {
queue.push(i);
}
// 1 ~ 5를 차례대로 queue 배열에 대입
// queue = [1, 2, 3, 4, 5]
const output = []
for (let i = 1; i <= 5; i++) {
const shift = queue.shift()
output.push(shift)
}
// queue 배열에 5번 shift()을 해준다.
// queue output
// [2,3,4,5] [1]
// [3,4,5] [1, 2]
// [4,5] [1, 2, 3]
// [5] [1, 2, 3, 4]
// [] [1, 2, 3, 4, 5]
이처럼 output 배열 즉, queue 배열에서 shfit 한 결과 기존 queue 배열에 들어간 순서 그대로 나오는 것을 알 수 있다.