라벨이 선입선출인 게시물 표시

스택(Stack)과 큐(Queue)

  좋습니다 👍 Stack(스택)과 Queue(큐)는 자료구조 에서 매우 기초적이면서도 중요한 개념입니다. 제가 아래에서 개념 → 특징 → 동작 원리 → 예시 → 장단점 → 활용 사례 순서로 꼼꼼하게 설명드릴게요. 1. Stack (스택) 📌 개념 **"쌓아 올린 더미"**처럼 동작하는 자료구조. LIFO (Last In, First Out) — 나중에 들어온 데이터가 먼저 나감. 마치 접시를 쌓아 올리고, 맨 위의 접시부터 꺼내는 것과 같음. 📜 특징 한쪽 끝 에서만 데이터의 삽입(Push)과 삭제(Pop)이 가능. 가장 마지막에 추가한 요소가 가장 먼저 제거됨. 중간 데이터 접근은 비효율적 (맨 위에서부터 하나씩 꺼내야 함). ⚙️ 동작 Push : 데이터를 스택의 맨 위에 넣음. Pop : 스택의 맨 위 데이터를 꺼냄. Peek / Top : 맨 위의 데이터를 확인하되 제거하지 않음. isEmpty : 스택이 비었는지 확인. [Bottom] 1 → 2 → 3 → 4 [Top] Push(5) → [Bottom] 1 → 2 → 3 → 4 → 5 [Top] Pop() → 반환: 5, 남음: [Bottom] 1 → 2 → 3 → 4 [Top] ✅ 장점 구현이 간단하고 속도가 빠름 (O(1) 연산). 되돌리기(Undo), 뒤로 가기 기능 구현이 쉬움. ❌ 단점 중간 데이터 접근이 어려움. 고정 크기 스택은 공간 낭비 가능. 💡 활용 예시 함수 호출(콜 스택) 웹 브라우저 뒤로 가기 문서 작성 프로그램의 되돌리기(Undo) 깊이 우선 탐색(DFS) 2. Queue (큐) 📌 개념 **"줄 서기"**처럼 동작하는 자료구조. FIFO (First In, First Out) — 먼저 들어온 데이터가 먼저 나감. 은행 창구나 버스 정류장 줄 서기와 같음. 📜 특징 **한쪽 끝(Rear)**에서 삽입...