Yeji's Tech Notes
article thumbnail
반응형

안녕하세요 이번 글에서는 혼공컴운에서 나온 스택과 큐 개념부터 비교 활용까지 한번 다뤄보겠습니다.

 

스택(Stack)

스택의 개념

스택이란 한쪽 끝이 막혀 있는 통과 같은 저장 공간입니다. 한쪽 끝이 막혀 있어서 막혀있지 않은 쪽으로 데이터를 차곡차곡 저장하고, 저장한 자료를 빼낼 때는 마지막으로 저장한 데이터부터 빼냅니다. '나중에 저장한 데이터를 가장 먼저 빼내는 데이터 관리 방식(후입선출)'이라는 점에서 LIFO(Last In First Out)자료구조라고도 부릅니다.

 

스택의 동작 방식

스택 동작 과정

만약 1부터 5까지의 수가 한 공간에 넣게 되면 PUSH라는 작업을 통해서 데이터가 저장이 됩니다. 이때 1,2,3,4,5 순서대로 데이터가 들어갑니다 반면에 값을 꺼낼때는 POP이라는 작업을 통해서 꺼내게 되는데 이때 넣은 마지막값부터 빠져나오게 됩니다. 넣은 값들이 빠지는 순서는 5 -> 4 -> 3 -> 2 -> 1 순으로 나오게 됩니다.

 

스택 활용

스택의 특징인 LIFO는 실생활에서도 많이 사용되고 있습니다. 

  • 웹 브라우저 방문기록 (뒤로 가기) : 가장 나중에 열린 페이지부터 다시 보여준다.
  • 실행 취소 (undo) : 가장 나중에 실행된 것부터 실행을 취소한다.

 

큐(Queue)

큐의 개념

스택과 달리 양쪽이 뚫려 있는 통과 같은 저장 공간을 큐(Queue)라고 합니다. 큐는 한쪽으로는 데이터를 저장하고, 다른 한쪽으로는 먼저 저장한 순서대로 데이터를 빼냅니다. 큐는 '가장 먼저 저장된 데이터부터 빼내는 데이터 관리 방식(선입선출)'이라는 점에서 FIFO(First In First Out)이라고도 읽습니다.

 

큐의 동작 방식

스택과 달리 큐는 원통이 누워있는 형태로 많이 표현합니다. 스택의 예처럼 큐에서도 1부터5까지 차례로 데이터가 들어가는데 이를 OFFER라는 연산을 통해서 값이 들어값니다. 큐에서는 데이터를 꺼낼때 POLL이라는 연산을 통해 꺼내게 되는데 스택과 달리 큐는 먼저 들어간 데이터가 먼저 나옵니다. 결국 1이 먼저 들어갔으므로 1이 먼저나오는 FIFO(First-In First-Out) 형태입니다.

 

큐 활용 예시

큐의 대표적인 활용 예시 2가지가 있습니다.

  • 프린터 출력 : 가장 먼저 대기열에 오른 프린트가 먼저 출력됩니다.
  • 컴퓨터 운영체제의 테스크 스케쥴링 : 가장 간단한 형태의 선입선 처리 스케쥴링 정책

 

반응형
profile

Yeji's Tech Notes

@Jop

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!