- 스택 (Stack):
- 특징: 후입선출(LIFO, Last In First Out) 구조. 가장 마지막에 넣은 데이터가 가장 먼저 나옵니다.
- 사용 예: 책을 쌓아 놓는 방식. 가장 위의 책이 가장 먼저 제거됩니다.
- 주요 연산:
- push: 데이터를 스택에 넣는 연산.
- pop: 스택의 맨 위 데이터를 꺼내는 연산.
- top 또는 peek: 스택의 맨 위 데이터를 제거하지 않고 조회하는 연산.
- 큐 (Queue):
- 특징: 선입선출(FIFO, First In First Out) 구조. 가장 먼저 넣은 데이터가 가장 먼저 나옵니다.
- 사용 예: 줄을 서는 방식. 줄의 맨 앞에 있는 사람이 먼저 나갑니다.
- 주요 연산:
- enqueue: 데이터를 큐의 맨 뒤에 넣는 연산.
- dequeue: 큐의 맨 앞 데이터를 꺼내는 연산.
- front: 큐의 맨 앞 데이터를 제거하지 않고 조회하는 연산.
- 덱 (Deque, Double-Ended Queue):
- 특징: 양쪽 끝에서 데이터를 추가하거나 제거할 수 있는 자료구조.
- 사용 예: 양쪽 끝에서 데이터를 처리할 수 있는 상황. 예를 들어, 문서의 양쪽 끝에서 페이지를 삽입하거나 제거하는 경우.
- 주요 연산:
- append: 데이터를 덱의 오른쪽 끝에 추가.
- appendleft: 데이터를 덱의 왼쪽 끝에 추가.
- pop: 덱의 오른쪽 끝 데이터를 제거.
- popleft: 덱의 왼쪽 끝 데이터를 제거.
Python의 collections 모듈에서 제공하는 deque는 큐와 덱의 기능을 모두 지원하는 자료구조입니다.
'Algorithm > 자료구조' 카테고리의 다른 글
Heap, Hash Table (0) | 2024.07.25 |
---|---|
스택, 큐, 데크 (0) | 2024.07.24 |
브루트포스 알고리즘과 슬라이딩 윈도우 알고리즘 (0) | 2024.07.18 |