ZeroBase/CS

스택(Stack), 큐(Queue)

Red_Horse 2025. 7. 22. 21:57

스택 (Stack)

  • 정의:
    후입선출(LIFO, Last-In First-Out) 구조.
    마지막에 들어간 데이터가 가장 먼저 나옴.
  • 사용 예시:
    • 재귀 호출(함수 호출 스택)
    • 괄호 검사
    • 웹 브라우저 방문 기록
    • DFS(깊이 우선 탐색)

  • 연산 항목 시간 복잡도
    n번째 참조 O(n)
    가장 위 참조 O(1)
    탐색 O(n)
    삽입/삭제(Top에서) O(1)

큐 (Queue)

  • 정의:
    선입선출(FIFO, First-In First-Out) 구조.
    먼저 들어간 데이터가 가장 먼저 나옴.
  • 사용 예시:
    • 작업 스케줄링(CPU 프로세스 대기열)
    • 너비 우선 탐색(BFS)
    • 네트워크 요청 처리
    • 캐시(예: LRU 캐시)
  • 시간 복잡도:
    연산 항목 시간 복잡도
    n번째 참조 O(n)
    가장 앞부분 참조 O(1)
    탐색 O(n)
    삽입/삭제(양 끝 제외) O(1)

스택 vs 큐 요약 비교

항목 스택
구조 LIFO (후입선출) FIFO (선입선출)
삽입 위치 Top (맨 위) Rear (뒤)
삭제 위치 Top (맨 위) Front (앞)
사용 사례 재귀, DFS, 기록 등 BFS, 스케줄링, 캐시 등

 

'ZeroBase > CS' 카테고리의 다른 글

트리(이진트리)  (0) 2025.07.22
그래프이론의 기초  (0) 2025.07.22
REST API  (0) 2025.07.21
페이지교체 알고리즘  (1) 2025.07.20
연결리스트와 랜덤접근과 순차적접근  (0) 2025.07.19