Learning
토픽 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-BlackO(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 FilterO(1)O(n)삭제 가능
Count-Min SketchO(k)O(w×d)빈도 추정
HyperLogLogO(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)는 시스템 설계 관점에서 이해