1. 공통점
- 선형 자료구조
- 삽입과 삭제가 한 쪽 또는 양쪽 끝에서 이루어짐
- 데이터를 순차적으로 처리하는 데 유리
- 내부적으로 배열, 연결 리스트 등으로 구현 가능
2. 스택(Stack)
- 정의: 후입선출 (LIFO) 구조 — 마지막에 넣은 데이터가 가장 먼저 나옴
- 주요 연산:
- Push: 데이터 삽입 (top에 추가)
- Pop: 데이터 제거 (top에서 제거)
- Peek: top 요소 확인
- 사용 예시:
- 재귀 호출(콜 스택)
- 괄호 검사
- DFS(깊이 우선 탐색)
- 되돌리기(Undo) 기능
Stack<int> stack = new Stack<int>();
stack.Push(10);
stack.Push(20);
Console.WriteLine(stack.Pop()); // 20
Console.WriteLine(stack.Peek()); // 10
3. 큐(Queue)
- 정의: 선입선출 (FIFO) 구조 — 먼저 들어온 데이터가 먼저 나감
- 주요 연산:
- Enqueue: 데이터 삽입 (뒤에 추가)
- Dequeue: 데이터 제거 (앞에서 제거)
- Peek: front 요소 확인
- 사용 예시:
- 프로세스 스케줄링
- BFS(너비 우선 탐색)
- 메시지 처리, 이벤트 대기열
Queue<int> queue = new Queue<int>();
queue.Enqueue(10);
queue.Enqueue(20);
Console.WriteLine(queue.Dequeue()); // 10
Console.WriteLine(queue.Peek()); // 20
4. 큐 vs 스택 비교 요약
| 항목 | 스택(Stack) | 큐(Queue) |
| 구조 | 후입선출(LIFO) | 선입선출(FIFO) |
| 예시 | DFS, Undo, 재귀 | BFS, 작업 스케줄러 |
'Unity > 개념' 카테고리의 다른 글
| [Unity] Time.DeltaTime (0) | 2025.08.06 |
|---|---|
| [Unity] 유니티 생명 주기 (0) | 2025.08.02 |
| [Unity] 제네릭에 대하여 (2) | 2025.08.01 |
| [Unity] 코루틴과 인보크 (1) | 2025.07.31 |
| [Unity] Override와 Overloading (2) | 2025.07.30 |