Steady Dev - TIL

Stack

stack

쌓아 올린 형태의 자료구조

스택의 특징

  • 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다.
  • 삽입과 삭제가 한 방향에서만 이루어진다.
  • 후입선출(LIFO, Last In First Out) 구조
  • top으로 정한 곳을 통해서만 접근이 가능하다.
  • 삽입하는 연산은 push, 삭제하는 연산은 pop이라고 한다.

스택 활용 예시

  • 웹 브라우저 방문기록 (뒤로가기): 가장 나중에 열린 페이지부터 다시 보여준다.
  • 실행 취소
  • 역순 문자열 만들기

Queue

queue.png

큐의 특징

  • 삽입 작업이, 다른 쪽 끝에서 삭제 작업이 양쪽으로 이루어진다.
  • 선입 선출 (First In, First Out)
  • 삭제 연산만 수행되는 곳은 front, 삽입 연산만 이루어지는 곳을 rear라고 한다.
  • 삽입 연산을 인큐(enQueue)라고 하고 삭제 연산을 디큐(deQueue)라고 한다.

큐 활용 예시

  • 우선순위가 같은 작업 예약(프린터의 인쇄 대기열)
  • 은행 업무
  • 프로세스 관리
  • 너비 우선 탐색(BFS, Breadth-First Search) 구현
  • 캐시(Cache) 구현

우선순위 큐 (Priority Queue)

우선순위 큐는 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나오는 것을 말한다. 보통 우선순위 큐는 힙(Heap)이라는 자료구조로 구현을 한다.

힙이란 루트노드가 가장 큰 값을 갖는 완전 이진트리 형식의 자료구조 이다.