1. Queue
- 선입선출 (FIFO)
- 먼저 저장한 데이터가 먼저 출력
-> enqueue : rear에 데이터가 추가
-> dequeue : front에서 데이터를 꺼냄

1) List 기반 Queue 구현
- enqueue - O(1)
- dequeue - O(n)
2) LinkedList 기반 Queue 구현
- enqueue - O(1)
- dequeue - O(1)
# list 기반 queue
q = []
# enqueue O(1)
q.append(1)
q.append(2)
q.append(3)
# dequeue O(n)
q.pop(0)
q.pop(0)
#linked List 기반 queue
from collections import deque
# queue 선언
q = deque()
# enqueue O(1)
q.append(1)
q.append(2)
q.append(3)
q.appendleft(0)
# dequeue O(1)
q.popleft()
q.popleft()
q.pop()
2. Stack
- 후입선출 (LIFO)
- 가장 최근에 추가한 데이터가 가장 먼저 나옴
-> push : 데이터를 추가
-> pop : 데이터를 추출

1) List 기반 Stack 구현
- push - O(1)
- pop - O(1)
# stack 선언
s = []
# push O(1)
s.append(1)
s.append(2)
s.append(3)
# pop O(1)
s.pop()
s.pop()
'📚 CS > 알고리즘, 자료구조' 카테고리의 다른 글
| [알고리즘] 선택 정렬 (selection sort) 이란? (1) | 2024.10.01 |
|---|---|
| [알고리즘, 자료구조] 그래프 Graph (1) | 2023.08.07 |
| [알고리즘, 자료구조] Tree 트리 (1) | 2023.07.03 |
| [알고리즘, 자료구조] Hash Table (해쉬 테이블) - dictionary (0) | 2023.06.19 |
| [알고리즘, 자료구조] List, LinkedList 의 이해 (0) | 2023.06.18 |