Queue(큐) 구조 및 원리
안녕하세요. 알렉스 입니다. 저번에 Stack에 대한 원리에 대해서 알아 봤는데 이번에는 Queue에 대해서 알아 보도록 하겠습니다.
예시는 Stack와 비슷합니다. Stack에 대해서 모르시는 분들은 먼저 Stack글을 읽어주시기 바랍니다. 링크는 아래쪽입니다.
저번과 마찬가지로 과일상자를 넣을 것입니다. 다만 이번에는 자판기 안에 넣을 것입니다. 이 자판기는 한번 넣으면 돈을 넣어야지 뺄수 있습니다. 따라서 자판기가 과일박스별로 층층이 싸이지만 위에서 뺄수는 없습니다.
이제 사과박스를 자판기 안에 넣겠습니다. 이 과정을 Enqueue라고 합니다.
다음 바나나박스를 자판기 안에 넣겠습니다..
모든 과일 박스를 넣게 되면 위 사진처럼 쌓이게 됩니다. 여기서 중요한 것은 Stack처럼 위에서 뺄수가 없습니다. 즉 박스 배출구(Box Exit)를 통해서만 뺄수 있습니다.
이때 가장 위에 있는 것은(mango) Rear라고 합니다. 가장 마지막에 있는 것은(apple) Front라고 합니다. 이는 나갈때 사과 상자가 가장 앞에 있기 때문에 Front라고 하는 것입니다.
이제 자판기에 1000\을 넣고 사과 상자를 뺍니다. 이때 사과가 사라진 자리에 위에 올려져 있던 상자(망고,토마토,바나나)들이 한칸씩 내려요게 됩니다.
마찬가지로 돈을 넣어서 계속 상자를 빼다보면 마지막에 망고 박스가 나오는 것을 알수 있습니다. 이 처럼 Stack와 달리 Queue는 먼저 들어온 것이 먼저 나오는 구조로 취해져 있습니다.
댓글
댓글 쓰기