본문 바로가기
여러가지/기타

스택(STACK) & 큐(QUEUE) - 자료구조와 차이점, 비교, 활용방법 (LIFO,FIFO)

by 포스트it 2021. 5. 10.
728x90
반응형

스택 (Stack)

- 메모리 안에 데이터들을 효율적으로 다루기 위해 만들어진 데이터 참조 방식

LIFO (Last In First Out)

- 한 쪽 끝에서만 데이터를 넣거나 뺄 수 있는 선형구조, 제일 마지막에 들어온 데이터가 제일 빨리 나가는 방식

 

LIFO(Last In First Out)

 

스택은 쌓아 올린다는 것을 의미한다.

따라서 스택 자료구조라는 것은 책을 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. (위 그림 참조)

 

스택에서 삽입하는 연산 'push' , 삭제하는 연산 'pop'이라고 한다.

스택은 시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다는 구조적 특징을 가진다.

 

스택의 활용 예시 (후입선출)

  • 웹 브라우저 방문기록 (뒤로 가기) : 가장 나중에 열린 페이지부터 다시 보여준다.
  • 역순 문자열 만들기 : 가장 나중에 입력된 문자부터 출력한다.
  • 실행 취소 (undo) : 가장 나중에 실행된 것부터 실행을 취소한다.
  • 수식의 괄호 검사 (연산자 우선순위 표현을 위한 괄호 검사)

 


 

 (Queue)

- 메모리 안에 데이터들을 효율적으로 다루기 위해 만들어진 데이터 참조 방식

IFO (First In First Out)

- 양 쪽 끝에서만 데이터를 넣거나 뺄 수 있는 선형구조, 제일 처음에 들어온 데이터가 제일 빨리 나가는 방식

FIFO(First In First Out)

 

큐(Queue)는  줄을 서서 기다리는 것이라고 생각하시면 된다.

따라서 일상생활에서 놀이동산에서 줄을 서서 기다리는 것, 은행에서 먼저 온 사람의 업무를 창구에서 처리하는 것과 같이

순서대로 진행하는 자료구조를 말한다. (위 그림 참조)

 

큐(Queue)에서 이루어지는 삽입연산을 인큐(enQueue)

프론트에서 이루어지는 삭제연산을 디큐(dnQueue)라고 한다.

 

큐의 활용 예시 (선입선출)

 

  • 우선순위가 같은 작업 예약 (프린터의 인쇄 대기열)
  • 은행 업무
  • 콜센터 고객 대기시간
  • 캐시(Cache) 구현

 

 




728x90
반응형

댓글