Unity/개념

[Unity] 스텍(Stack)과 큐(Queue)

turbulence93 2025. 8. 3. 17:47

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