Notice
Recent Posts
Recent Comments
Link
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

코딩 이래요래

자료구조 - Stack, Queue, Deque 본문

JAVA

자료구조 - Stack, Queue, Deque

강범호 2025. 4. 13. 14:53

🥞 1. Stack

https://www.programiz.com/dsa/stack

  • Java에서 Stack 클래스는 Vector 클래스를 상속받아 만들어짐
  • 구조는 LIFO (Last-In-First-Out)
  • 가장 마지막에 삽입된 데이터가 가장 먼저 제거됨

📌 LIFO 특징

  • 삽입과 삭제는 항상 Top에서만 일어남
  • 중간 요소 접근은 불가능하며, 꺼내려면 위부터 모두 제거해야 함

✅ Stack 사용 사례

  • 웹 브라우저의 뒤로가기(Back) 기능
  • 함수 호출 시 호출 스택 관리
  • 괄호 짝 맞추기, 수식 계산

🚚 2. Queue

https://www.programiz.com/dsa/queue

  • 구조는 FIFO (First-In-First-Out)
  • 가장 먼저 들어간 데이터가 가장 먼저 나옴
  • 일반적으로 LinkedList 또는 ArrayDeque로 구현함
  • 한쪽은 enqueue(삽입), 다른 한쪽은 dequeue(삭제)만 담당함

📌 FIFO 특징

  • Front에서 삭제, Rear에서 삽입
  • 순서를 유지하며 처리해야 하는 작업에 적합

✅ Queue 사용 사례

  • 프린터 출력 작업 대기열
  • 콜센터 고객 상담 대기 시스템
  • 운영체제 프로세스 스케줄링
  • 너비 우선 탐색(BFS)

🔁 3. Deque (Double Ended Queue)

https://simplerize.com/data-structures/double-ended-queue-deque

  • 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