Computer Science

큐(QUEUE)와 스택(STACK)

닉네임못짓는사람 2021. 12. 11. 23:15
반응형

이번 글에서는 큐와 스택에 대해서 알아보도록 하자.

 

데이터를 저장하는 방법


큐와 스택은 둘 다 데이터를 저장하는 자료구조를 이야기한다.

이때 데이터를 저장하고, 꺼낼 때의 방식에 따라 둘의 차이가 나타난다.

 

큐(QUEUE)


먼저, 큐는 선입선출(FIFO, First In First Out)의 방식을 사용하는 자료구조로, 말 그대로 먼저 들어간 데이터가 먼저 나오게 된다.

이때 데이터 하나를 큐에 집어넣는 것을 Enqueue, 반대로 데이터 하나를 큐에서 꺼내는 것을 Dequeue라고 한다.

 

또한 큐에서 가장 먼저 들어간 데이터가 위치한 가장 앞단을 Front라고 부르며

사진에는 Back이라고 나와있지만, 데이터가 마지막에 들어가는 가장 뒷단은 Rear라고 부른다.

 

간단한 예로 사람들이 줄을 서는 것을 예로 들 수 있다.

줄을 서게 될 경우 줄에 들어간 순서대로 사람들이 서게 되며, 가장 앞에 있는 사람부터 작업을 처리한다.

 

이러한 큐 구조는 주로 순서를 보장하기 위한 처리가 필요할 때 사용한다.

 

스택(STACK)


스택은 선입후출(FILO, First In Last Out)의 방식을 사용하는 자료구조로, 큐와 다르게 먼저 들어간 데이터가 나중에 나오게 된다.

스택에선 데이터 하나를 추가하는 동작을 Push, 반대로 데이터 하나를 꺼내는 것을 Pop이라고 한다.

 

스택에서는 큐와 달리 Pop, Push동작이 모두 스택의 가장 위쪽에서만 실행된다.

이 가장 윗부분을 Top이라고 부른다.

 

간단한 예로 인터넷 브라우저를 사용할 때, 한 탭에서 계속 다른 페이지로 이동하게 되면

우리가 이동한 페이지가 스택에 계속해서 쌓이게 된다.

때문에 뒤로 가기 버튼을 누르게 되면 우리가 가장 최근에 이동했던 페이지로 이동하게 되는 것이다.

 

 

반응형