토픽 10 / 21·과목별 관계도
자료구조 관계도
💡
이 관계도는 전체 토픽의 구조와 연결 관계를 보여줍니다. 학습 전에 전체 흐름을 파악하세요.
토픽 마인드맵
mindmap
root((자료구조<br/>68개 토픽))
기초 개념
자료 구조
추상 자료형
선형 구조
배열 기반
배열
동적 배열
원형 버퍼
비트맵
리스트 기반
연결 리스트
이중 연결 리스트
원형 연결 리스트
다중 연결 리스트
XOR 연결 리스트
스킵 리스트
특수 리스트
Rope
스택/큐
스택
큐
덱
우선순위 큐
Lock-Free Queue
트리 구조
기본 트리
트리
이진 트리
이진 트리 순회
트리 종류
탐색 트리
이진 탐색 트리
AVL 트리
Red-Black 트리
스플레이 트리
Treap
Cartesian Tree
AA 트리
다진 트리
2-3 트리, 2-3-4 트리
B-트리
B+트리
Copy-on-Write B-Tree
LSM 트리
힙
힙
피보나치 힙
이항 힙
특수 트리
트라이
Radix Tree
Suffix Tree/Array
세그먼트 트리
Lazy Propagation
Fenwick 트리
Van Emde Boas Tree
Dancing Links
공간 분할 트리
쿼드트리
KD-Tree
R-Tree
그래프
그래프
그래프 표현 방식
탐색 알고리즘
DFS
BFS
집합 연산
유니온 파인드
해시 기반
해시 테이블
Hash Collision Resolution
Open Addressing 심화
해시 함수 설계
확장성 해싱
ConcurrentHashMap
확률적 자료구조
필터
블룸 필터
Cuckoo Filter
카운팅
Count-Min Sketch
HyperLogLog
캐시/메모리
LRU 캐시
분산/저장소
SSTable
Consistent Hashing
Merkle Tree
고급 개념
Persistent Data Structure주요 카테고리별 토픽 수
| 카테고리 | 토픽 수 | 주요 기술 |
|---|---|---|
| 기초 개념 | 2개 | 자료구조, ADT |
| 선형 구조 | 16개 | 배열, 연결리스트, 원형 연결 리스트, 다중 연결 리스트, XOR 연결 리스트, 스택, 큐, 덱, 우선순위큐 |
| 트리 구조 | 30개 | BST, AVL, Red-Black, 스플레이 트리, Cartesian Tree, AA 트리, 2-3/2-3-4 트리, B-트리, CoW B-Tree, LSM 트리, 힙, 피보나치 힙, 이항 힙, 트라이, Radix Tree, 세그먼트 트리, Lazy Propagation, Dancing Links |
| 그래프 | 5개 | 그래프, 그래프 표현 방식, DFS, BFS, 유니온 파인드 |
| 해시 기반 | 6개 | 해시 테이블, 충돌 해결, 개방 주소법, 해시 함수 설계, 확장성 해싱, ConcurrentHashMap |
| 확률적 자료구조 | 4개 | 블룸 필터, Cuckoo Filter, Count-Min Sketch, HyperLogLog |
| 캐시/메모리 | 1개 | LRU 캐시 |
| 분산/저장소 | 3개 | SSTable, Consistent Hashing, Merkle Tree |
| 고급 개념 | 1개 | Persistent Data Structure |
총 68개 토픽: (기존 53개 → 15개 추가)
핵심 연관 관계
선형 구조 진화
배열 (정적) → 동적 배열 (가변)
→ 연결 리스트 → 이중 연결 리스트
→ 원형 연결 리스트
→ 다중 연결 리스트
→ 스킵 리스트스택/큐 계층
기본: 스택, 큐 ↓ 확장: 덱 (양방향) ↓ 우선순위: 우선순위 큐 (힙 기반) ↓ 동시성: Lock-Free Queue
이진 탐색 트리(BST) 진화
BST (기본, 불균형 가능) ↓ 균형 트리 ├─ AVL 트리 (엄격한 균형, 높이 차이 1) ├─ Red-Black 트리 (느슨한 균형, 실용적) ├─ 스플레이 트리 (자가 조정, 최근 접근 빠름) ├─ Treap (랜덤 우선순위) └─ Cartesian Tree (최소 힙 + BST 결합)
트리 기본 개념
트리 (일반)
↓
이진 트리
├─ 트리 종류 (완전/포화/편향)
└─ 이진 트리 순회 (전위/중위/후위/레벨)
↓
이진 탐색 트리 (BST)B-트리 계열 (디스크 기반)
B-트리 (내부 노드 데이터 포함) ↓ B+트리 (리프 노드만 데이터, DB 인덱스) ↓ Copy-on-Write B-Tree (불변 스냅샷, 트랜잭션)
공간 분할 트리 (다차원 데이터)
1D: 이진 탐색 트리 ↓ 2D: 쿼드트리 (4분할) ↓ kD: KD-Tree (k차원) ↓ 공간 객체: R-Tree (MBR 기반)
문자열/텍스트 트리
트라이 (Trie) - 접두사 검색 ↓ Radix Tree (압축 트라이, 메모리 효율) ↓ Suffix Tree/Array - 부분 문자열 검색 ↓ Rope - 긴 문자열 편집
구간 쿼리 트리
세그먼트 트리 (완전 이진 트리, 구간 합/최소/최대) ├─ Lazy Propagation (구간 업데이트 최적화) ↓ Fenwick 트리 (BIT, 누적 합, 메모리 효율)
해시 기반 구조
해시 함수 설계 (기반 이론) ↓ 해시 테이블 (기본) ├─ Hash Collision Resolution (체이닝, 개방 주소법) │ └─ Open Addressing 심화 (선형/이차/이중 해싱) ├─ 확장성 해싱 (동적 확장) └─ ConcurrentHashMap (동시성 지원)
확률적 자료구조 (근사 알고리즘)
멤버십 테스트 ├─ 블룸 필터 (존재 여부, False Positive) └─ Cuckoo Filter (삭제 지원) 카운팅/집계 ├─ Count-Min Sketch (빈도 추정) └─ HyperLogLog (카디널리티 추정)
분산/저장소 계열
LSM 트리 (쓰기 최적화) └─ SSTable (정렬된 불변 파일, LSM 구성요소) Consistent Hashing (분산 키 분배) Merkle Tree (데이터 무결성 검증, 블록체인) Copy-on-Write B-Tree (트랜잭션 안전 스냅샷)
시간/공간 복잡도 비교
탐색/삽입/삭제 (평균)
| 자료구조 | 탐색 | 삽입 | 삭제 | 공간 |
|---|---|---|---|---|
| 배열 | O(1) | O(n) | O(n) | O(n) |
| 연결 리스트 | O(n) | O(1) | O(1) | O(n) |
| 스택/큐 | O(n) | O(1) | O(1) | O(n) |
| 해시 테이블 | O(1) | O(1) | O(1) | O(n) |
| BST (균형) | O(log n) | O(log n) | O(log n) | O(n) |
| AVL 트리 | O(log n) | O(log n) | O(log n) | O(n) |
| Red-Black | O(log n) | O(log n) | O(log n) | O(n) |
| B-트리 | O(log n) | O(log n) | O(log n) | O(n) |
| 힙 | O(n) | O(log n) | O(log n) | O(n) |
| 트라이 | O(m) | O(m) | O(m) | O(n×m) |
| 스킵 리스트 | O(log n) | O(log n) | O(log n) | O(n log n) |
m = 문자열 길이
구간 쿼리
| 자료구조 | 구간 쿼리 | 업데이트 | 공간 |
|---|---|---|---|
| 세그먼트 트리 | O(log n) | O(log n) | O(n) |
| Fenwick 트리 | O(log n) | O(log n) | O(n) |
확률적 자료구조
| 자료구조 | 멤버십/카운팅 | 공간 | 특징 |
|---|---|---|---|
| 블룸 필터 | O(k) | O(m) | False Positive, 삭제 불가 |
| Cuckoo Filter | O(1) | O(n) | 삭제 가능 |
| Count-Min Sketch | O(k) | O(w×d) | 빈도 추정 |
| HyperLogLog | O(1) | O(m) | 카디널리티 추정 |
학습 순서 추천
1단계: 기초 (필수)
1. 자료구조 개념, ADT
2. 배열, 연결 리스트, 원형 연결 리스트, 다중 연결 리스트
3. 스택, 큐, 덱
4. 해시 테이블, 해시 함수 설계
2단계: 트리 기초
5. 트리, 이진 트리, 트리 종류
6. 이진 트리 순회
7. 이진 탐색 트리 (BST)
8. 힙, 우선순위 큐
3단계: 균형 트리
9. AVL 트리
10. Red-Black 트리
11. 스플레이 트리, Cartesian Tree
12. B-트리, B+트리
4단계: 그래프
13. 그래프 표현, 그래프 표현 방식 (인접 행렬 vs 인접 리스트)
14. DFS, BFS
15. 유니온 파인드
5단계: 해시 심화
16. Hash Collision Resolution, Open Addressing 심화
17. 확장성 해싱
6단계: 고급 트리
18. 트라이, Radix Tree
19. 세그먼트 트리, Lazy Propagation
20. Fenwick 트리
7단계: 특수 자료구조
21. 스킵 리스트
22. LRU 캐시
23. 블룸 필터
24. 공간 분할 트리 (쿼드트리, KD-Tree, R-Tree)
25. Dancing Links
8단계: 분산/저장소
26. LSM 트리, SSTable
27. Consistent Hashing
28. Merkle Tree
29. Copy-on-Write B-Tree
9단계: 최신/동시성
30. Persistent Data Structure
31. Lock-Free Queue
32. ConcurrentHashMap
시험 출제 포인트
고빈도 주제
- •배열 vs 연결 리스트: 장단점, 시간복잡도, 사용 사례
- •스택/큐: 구현, 응용 (DFS/BFS)
- •해시 테이블: 충돌 해결 (체이닝, 개방 주소법), Open Addressing 기법
- •BST vs AVL vs Red-Black: 균형 조건, 회전, 성능
- •힙: 힙 정렬, 우선순위 큐 구현
- •DFS vs BFS: 차이, 응용, 구현
- •이진 트리 순회: 전위/중위/후위/레벨 순회 차이
중요 개념
- •B-트리 vs B+트리: DB 인덱스, 차이점
- •트라이 vs Radix Tree: 접두사 검색, 메모리 효율
- •세그먼트 트리 + Lazy Propagation: 구간 쿼리, 구간 업데이트 최적화
- •유니온 파인드: 경로 압축, Union by Rank
- •해시 함수 설계: 좋은 해시 함수 조건, 충돌 최소화
- •확장성 해싱: 동적 확장, 디렉터리 기반
최신 트렌드
- •확률적 자료구조: 블룸 필터, HyperLogLog (빅데이터)
- •LRU 캐시: 구현, 시간복잡도 O(1)
- •동시성: Lock-Free Queue, ConcurrentHashMap
- •공간 분할: 쿼드트리, KD-Tree, R-Tree (GIS, 게임)
- •분산 시스템: Consistent Hashing, Merkle Tree, SSTable
- •Copy-on-Write B-Tree: 트랜잭션 안전, 스냅샷 격리
마인드맵 활용 팁:
- •선형 → 트리 → 그래프 순으로 난이도 상승
- •균형 트리(AVL, Red-Black, 스플레이) 회전 원리 비교
- •B-트리/B+트리/CoW B-Tree는 디스크 I/O 최적화 관점에서 이해
- •확률적 자료구조는 공간-정확도 트레이드오프
- •구간 쿼리(세그먼트 + Lazy Propagation, Fenwick)는 알고리즘 문제에 자주 출제
- •해시 충돌 해결 기법(체이닝 vs 개방 주소법)은 단골 출제
- •분산/저장소 자료구조(LSM, SSTable, Consistent Hashing, Merkle Tree)는 시스템 설계 관점에서 이해