[CS] 스택 / 큐

눈치없어·2025년 2월 26일

스택(Stack)

  • 후입선출(LIFO, Last In First Out) 방식의 자료구조
  • 데이터를 넣을 때는 PUSH, 꺼낼 때는 POP 연산을 수행

📌 스택 활용

함수 호출 시 매개변수 저장
  • 함수가 호출되면 매개변수가 스택에 저장됨
  • 가장 최근에 호출된 함수의 매개변수가 가장 먼저 사용되고, 실행이 끝나면 스택에서 삭제됨
  • 후입선출(LIFO) 방식과 일치하여 스택이 적합
웹 브라우저의 뒤로 가기 기능
  • 방문한 웹사이트의 URL을 스택에 저장(PUSH)
  • 뒤로 가기 버튼을 누를 때마다 이전 URL을 꺼내서(POP) 이전 페이지로 이동
미로 탐색(백트래킹)
  • 이동할 때마다 현재 위치를 스택에 저장(PUSH)
  • 막다른 길에 도달하면 되돌아가기 위해 이전 위치를 꺼냄(POP)


  • 선입선출(FIFO, First In First Out) 방식의 자료구조
  • 한쪽에서 삽입(Enqueue), 반대쪽에서 삭제(Dequeue) 수행

📌 큐 활용

  • 버퍼(Buffer) → 임시 저장된 데이터를 순서대로 처리할 때 사용
  • 줄 세우기 개념 → 먼저 들어온 데이터가 먼저 나감
  • 다른 자료구조 및 알고리즘 구현의 기본 재료로 활용됨

📌 큐 변형 형태

원형 큐(Circular Queue)

  • 삽입(Enqueue)과 삭제(Dequeue) 위치를 연결하여 원형으로 구성
  • 배열의 공간을 효율적으로 활용할 수 있음

(Deque, Double-Ended Queue)

  • 양쪽에서 삽입과 삭제가 모두 가능한 큐
  • 앞에서도, 뒤에서도 데이터를 넣고 뺄 수 있음

우선순위 큐(Priority Queue)

  • 입력 순서가 아닌 우선순위에 따라 먼저 처리되는 큐
  • FIFO가 아닌, 우선순위가 높은 요소가 먼저 나감
  • (Heap) 자료구조를 기반으로 구현됨

운영체제의 프로세스 스케줄링
CPU가 여러 개의 작업을 수행할 때 FIFO 방식으로 처리
우선순위가 있는 경우 → 우선순위 큐 사용



참고: 북스터디 - 이것이 취업을 위한 컴퓨터 과학이다 (Chapter 4-3)

profile
dock 사이즈 다르잖아

0개의 댓글