자료구조 설계 스택과 큐

프로그래밍의 기초 자료구조인 스택(Stack)큐(Queue)의 동작 원리를 정리했다.

데이터 입출력 규칙을 통해 다양한 문제를 해결할 수 있다.

LIFO vs FIFO 구조 분석

스택과 큐는 데이터 처리 순서에 따라 구분된다.

// 1. Stack (LIFO: Last-In First-Out)
// 후입선출 구조. 마지막에 삽입된 데이터가 먼저 추출됨.
stack.push(1); stack.push(2);
System.out.println(stack.pop()); // 2 출력

// 2. Queue (FIFO: First-In First-Out)
// 선입선출 구조. 먼저 삽입된 데이터가 먼저 추출됨.
queue.add(1); queue.add(2);
System.out.println(queue.poll()); // 1 출력

자료구조 활용 사례

  • 스택: 역순 처리가 필요한 기능에 활용된다.
    브라우저 ‘뒤로 가기’, 에디터 ‘실행 취소(Undo)’, 함수 호출 스택 등이 대표적이다.

  • : 순차적 처리가 필요한 시스템에 활용된다.
    프린터 대기열, 프로세스 스케줄링, 서버 요청 처리 등에 사용된다.

설계적 고찰

큐 구현 시 발생하는 공간 낭비를 해결하기 위한 ‘원형 큐(Circular Queue)’ 방식 등을 통해 시스템 효율성을 높일 수 있다.

문제 상황에 적합한 자료구조를 선택하는 것은 개발자의 기본 역량이다.

효율적인 설계를 위해 각 구조의 특성을 명확히 이해해야 하는 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts