포슀트

πŸŒ“ Graph, Tree | κ·Έλž˜ν”„, 트리

πŸ’« Graph | κ·Έλž˜ν”„


κ·Έλž˜ν”„ : 정점과 κ°„μ„ μœΌλ‘œ 이루어진 자료ꡬ쑰

각 μ›μ†Œλ₯Ό 정점(Vertex) λ˜λŠ” λ…Έλ“œ(Node : λ§ˆλ””)라고 λΆ€λ₯΄κ³ , κ°„μ„ (Edge)은 두 정점을 μ—°κ²°ν•˜λŠ” 선이닀.

πŸ’« Tree | 트리


무방ν–₯μ΄λ©΄μ„œ 사이클이 μ—†λŠ” μ—°κ²° κ·Έλž˜ν”„ (Undirected Acyclic Connected Graph)

각 λ…Έλ“œκ°€ μ„œλ‘œ λΆ€λͺ¨-μžμ‹ κ΄€κ³„λ‘œ μ—°κ²°λœλ‹€.

  • λΆ€λͺ¨-μžμ‹ 관계
    • λΆ€λͺ¨(Parent) : μžμ‹μ„ κ°€μ§€λŠ” λ…Έλ“œ
    • μžμ‹(Child) : λΆ€λͺ¨λ₯Ό κ°€μ§€λŠ” λ…Έλ“œ
  • 루트(Root : 뿌리) λ…Έλ“œ : 트리의 μ΅œμƒμœ„ λ…Έλ“œ
  • 리프(Leaf : 잎), 단말(Terminal) λ…Έλ“œ : μžμ‹μ΄ μ—†λŠ” 말단 λ…Έλ“œ

  • μ„œλΈŒνŠΈλ¦¬(Subtree) : 트리의 일뢀뢄, μ–΄λ–€ ν•œ 정점에 λŒ€ν•΄ κ·Έ 정점과 κ·Έ μ •μ μ˜ μžμ†λ“€λ‘œ 이루어진 트리

  • 높이/레벨(Height/Level) : λ£¨νŠΈμ—μ„œ ν•΄λ‹Ή λ…Έλ“œκΉŒμ§€μ˜ 거리
    • λ…Έλ“œκ°€ 1개만 μžˆμ„ λ•Œμ˜ 높이λ₯Ό 1둜 λ‘λŠλƒ 0으둜 λ‘λŠλƒμ— 따라 높이가 λ‹¬λΌμ§ˆ 수 있음

🫧 λ‹€λ₯Έ 말둜 (μ„±μ§ˆ)

  • μ—°κ²° κ·Έλž˜ν”„μ΄λ©΄μ„œ μž„μ˜μ˜ 간선을 μ œκ±°ν•˜λ©΄ μ—°κ²° κ·Έλž˜ν”„κ°€ μ•„λ‹ˆλ©΄ λ˜λŠ” κ·Έλž˜ν”„
  • ⭐ μž„μ˜μ˜ 두 점을 μ—°κ²°ν•˜λŠ” simple path(정점이 μ€‘λ³΅ν•΄μ„œ λ‚˜μ˜€μ§€ μ•ŠλŠ” 경둜)κ°€ μœ μΌν•œ κ·Έλž˜ν”„
  • ⭐ V개의 정점을 가지고 V-1개의 간선을 κ°€μ§€λŠ” μ—°κ²° κ·Έλž˜ν”„
  • 사이클이 μ—†λŠ” μ—°κ²° κ·Έλž˜ν”„μ΄λ©΄μ„œ μž„μ˜μ˜ 간선을 μΆ”κ°€ν•˜λ©΄ 사이클이 μƒκΈ°λŠ” κ·Έλž˜ν”„
  • V개의 정점을 가지고 V-1개의 간선은 κ°€μ§€λŠ” Anyclic(=사이클이 μ—†λŠ”) κ·Έλž˜ν”„

🫧 μž„μ˜μ˜ λ…Έλ“œλ₯Ό 루트둜 λ§Œλ“€ 수 μžˆλ‹€

μž„μ˜μ˜ λ…Έλ“œλ₯Ό 루트둜 λ§Œλ“€ 수 μžˆλ‹€

트리λ₯Ό ꡬ슬과 μ‹€λ‘œ μ—°κ²°λœ λͺ¨μ–‘이라고 생각할 λ•Œ,
아무 κ΅¬μŠ¬μ„ 작고 μœ„λ‘œ μ˜¬λ €λ„ κ·Έ λͺ¨μ–‘은 μ—¬μ „νžˆ νŠΈλ¦¬κ°€ λœλ‹€.

단, λ£¨νŠΈκ°€ 달라지면 각 λ…Έλ“œμ˜ λΆ€λͺ¨κ°€ 달라진닀. (λΆ€λͺ¨-μžμ‹ 관계가 달라진닀.)

🫧 Binary Search Tree

Binary Search Tree

이 κΈ°μ‚¬λŠ” μ €μž‘κΆŒμžμ˜ CC BY 4.0 λΌμ΄μ„ΌμŠ€λ₯Ό λ”°λ¦…λ‹ˆλ‹€.