코딩 이래요래
자료구조 - Stack, Queue, Deque 본문
🥞 1. Stack
- Java에서 Stack 클래스는 Vector 클래스를 상속받아 만들어짐
- 구조는 LIFO (Last-In-First-Out)
- 가장 마지막에 삽입된 데이터가 가장 먼저 제거됨
📌 LIFO 특징
- 삽입과 삭제는 항상 Top에서만 일어남
- 중간 요소 접근은 불가능하며, 꺼내려면 위부터 모두 제거해야 함
✅ Stack 사용 사례
- 웹 브라우저의 뒤로가기(Back) 기능
- 함수 호출 시 호출 스택 관리
- 괄호 짝 맞추기, 수식 계산
🚚 2. Queue
- 구조는 FIFO (First-In-First-Out)
- 가장 먼저 들어간 데이터가 가장 먼저 나옴
- 일반적으로 LinkedList 또는 ArrayDeque로 구현함
- 한쪽은 enqueue(삽입), 다른 한쪽은 dequeue(삭제)만 담당함
📌 FIFO 특징
- Front에서 삭제, Rear에서 삽입
- 순서를 유지하며 처리해야 하는 작업에 적합
✅ Queue 사용 사례
- 프린터 출력 작업 대기열
- 콜센터 고객 상담 대기 시스템
- 운영체제 프로세스 스케줄링
- 너비 우선 탐색(BFS)
🔁 3. Deque (Double Ended Queue)
- Stack과 Queue의 성질을 모두 가진 자료구조
- 양쪽 끝에서 삽입과 삭제가 모두 가능함
📌 양방향 처리 특징
- 앞과 뒤 양쪽에서 삽입/삭제 가능
- 양 끝을 독립적으로 제어할 수 있어 유연성 높음
- 상황에 따라 Stack처럼도, Queue처럼도 활용 가능
✅ Deque 사용 사례
- 웹 브라우저의 앞, 뒤로 가기 기능
- 작업의 우선순위가 동적으로 변하는 시스템
해당 게시글은 학습한 내용을 정리하고 복습하며 정리한 글이므로 틀린 부분이 있을 수 있음.
'JAVA' 카테고리의 다른 글
Spring Framework 핵심 개념 (0) | 2025.04.29 |
---|---|
자료구조 - Tree, Binary Tree (0) | 2025.04.16 |
자료구조 - List (0) | 2025.04.13 |
자료구조 (0) | 2025.04.13 |
SOLID 원칙 (0) | 2025.04.07 |