스택(Stack)
개념:
후입선출(Last In, First Out; LIFO) 구조를 가진 자료 구조입니다.
가장 최근에 삽입된 항목이 가장 먼저 제거됩니다.
기본 연산
- Push: 스택에 항목을 추가합니다.
- Pop: 스택의 맨 위 항목을 제거합니다.
- Top (또는 Peek): 스택의 맨 위에 있는 항목을 반환하지만 제거하지 않습니다.
- IsEmpty: 스택이 비어있는지 확인합니다.
활용 예시
- 함수 호출을 관리할 때 (호출 스택)
- 역순 문자열 만들기
- 웹브라우저 방문기록
큐(Queue)
개념
선입선출(First In, First Out; FIFO) 구조를 가진 자료 구조입니다.
가장 먼저 삽입된 항목이 가장 먼저 제거됩니다.
기본 연산
- Enqueue (또는 Push): 큐에 항목을 추가합니다.
- Dequeue (또는 Pop): 큐의 맨 앞 항목을 제거합니다.
- Front: 큐의 맨 앞에 있는 항목을 반환하지만 제거하지 않습니다.
- Rear (또는 Back): 큐의 맨 뒤에 있는 항목을 반환하지만 제거하지 않습니다.
- IsEmpty: 큐가 비어있는지 확인합니다.
활용 예시
- 서비스 센터의 대기시작
- BFS (너비 우선 탐색) 알고리즘
- 특정한 순서로 작업을 처리해야 할 때
참고 사항
스택과 큐는 각각의 장단점이 있으며, 문제에 따라 적절한 자료 구조를 선택하는 것이 중요합니다.
일부 언어에서는 스택과 큐를 구현하는 데 내장된 자료 구조를 제공합니다.