[자료구조] 스택 (STACK), 큐(QUEUE)

김기범·2023년 3월 24일
0

JS-Study

목록 보기
6/11

스택(STACK)

  • 스택(STACK)이란 쌓아 올린다는 의미로, 데이터를 차곡차곡 쌓아 올린 형태의 자료구조 이다.

스택(STACK)은 LIFO(Last in First Out) 방식으로 말 그대로 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다고 하여 "후입선출" 구조 라고 한다.

또한 스택(STACK)은 top으로 정한 곳을 통해서만 접근할 수 있다. 새로 삽입되는 자료는 top이 가리키는 가장 맨 위에 쌓이게되며, 자료를 삭제할 때도 top을 통해서 삭제가 가능하다.

top을 통해 삽입하는 연산을 'push' , top을 통해 삭제하는 연산을 'pop'이라고 한다.

실제 스택의 활용 예시

  • 웹 브라우저 방문기록(뒤로가기)
  • 역순 문자열 만들기
  • 실행 취소

큐(QUEUE)

  • 큐(QUEUE)는 스택(STACK)과 다르게 먼저 들어온 것이 먼저 나가는 FIFO(First in First Out) 방식으로 "선입선출" 구조 라고 한다.

정해진 한곳(top)을 통해서 삽입, 삭제가 이루어지는 스택과 달리 큐는 한쪽 끝에서 삽입작업이, 다른쪽 끝에서는 삭제 작업이 이루어진다.

삭제 연산이 수행되는 곳을 프론트(front), 삽입연산이 이루어지는 곳을 리어(rear)라고 하며 작업이 나뉘어서 이루어지고 있다.

이때, 큐의 리어에서 이루어지는 삽입연산을 인큐(enQueue), 프론트에서 이루어지는 삭제연산을 디큐(dnQueue)라고 부른다.

실제 큐의 활용 예시

  • 은행 업무
  • 콜센터 고객 대기시간
  • 프로세스 관리

요약
스택(STACK) - LIFO(Last in First Out)
큐(QUEUE) - FIFO(First in First Out)

profile
프론트 개발 공부를 정리한 블로그입니다.

0개의 댓글