[μλ£ κ΅¬μ‘°] κ·Έλν μλ£κ΅¬μ‘° :: Graph Data Structure
κ·Έλν(Graph)λ?

κ·Έλνλ? μ½κ² ν λ¬Έμ₯μΌλ‘ μ€λͺ νλ€λ©΄, νμ€ μΈκ³μ κ΄κ³λ₯Ό μκ°μ μΌλ‘ λνλΌ μ μλ ꡬ쑰. λΌκ³ ν μ μλ€.
μ°λ¦¬λ μΌμμμ λ€μκ³Ό κ°μ κ³³μμ κ·Έλνλ₯Ό μ¬μ©νλ€.
- λ€λΉκ²μ΄μ μ΅λ¨ κ²½λ‘
- λ€νΈμν¬ ν΅μ
- μΉκ΅¬ κ΄κ³
κ·Έλνλ₯Ό μ¬μ©νλ©΄ κ°μ²΄κ°μ κ΄κ³λ₯Ό μ½κ² λνλΌ μ μλ€λ μ₯μ μΌλ‘ λ§μ΄ μ¬μ©νλ€.
μ΄λ₯Ό μ λ¬Έμ μΈ μ©μ΄λ‘ λ§ νλ€λ©΄ μ μ κ³Ό κ°μ μ μ§ν©μΌλ‘ ꡬμ±λλ©° μνμ μΌλ‘λ G = (V, E)μ κ΄κ³λ‘ λνλλ€. μ²μ 보λ μ¬λλ€μ μ΄ν΄κ° μ κ° μλ μλλ°, ν λ² λ°λΌκ° 보μ.
κ·Έλνμ μ’ λ₯
κ·Έλνμ μ’ λ₯λ λ€μκ³Ό κ°μ μΈ κ°μ§λ‘ λλλ€.

무방ν₯ κ·Έλν (Undirected Graph)
무νν₯ κ·Έλνλ κ°μ μ λ°©ν₯μ΄ νμλμ΄μμ§ μμ κ·Έλνλ₯Ό 무방ν₯ κ·ΈλνλΌκ³ νλ€.
μ¬κΈ°μ νλμ κ°μ μ μλ°©ν₯μΌλ‘ κ°μ μλ κΈΈμ μλ―Ένκ³ (A, B)λ (B, A)μ κ°μ κ°μ μ΄ λλ€.
λ°©ν₯ κ·Έλν (Directed Graph)
κ°μ μ λ°©ν₯μ΄ μ‘΄μ¬νλ κ·Έλνλ₯Ό λ°©ν₯ κ·ΈλνλΌκ³ νλ€.
λ³΄ν΅ νμ΄νλ‘ νμλλλ° μ°¨λμ μΌλ°©ν΅νμ΄λΌκ³ μκ°νλ©΄ μ½λ€.
<A, B>λ₯Ό λ°©ν₯μ΄ μλ κ·Έλνμμ νμνλλ° <A, B>λ μ μ Aμμ Bλ‘λ§ κ° μ μλ κ°μ μ λνλΈλ€. κ·Έ λ§μ λΉμ°ν <A, B>μ <B, A>λ λ€λ₯Έ κ·Έλνλ₯Ό λ»νλ€.
κ°μ€μΉ κ·Έλν (Weighted Graph)
κ°μ μ λΉμ©μ΄λ κ°μ€μΉκ° ν λΉλ κ·Έλνλ₯Ό κ°μ€μΉ κ·ΈλνλΌκ³ νλ€.
κ·Έλνμ μ©μ΄
- μΈμ μ μ
κ°μ μ μν΄ μ§μ μ°κ²°λ κ·Έλν
- μ μ μ μ°¨μ
μ μ μ μ°κ²°λ κ°μ μ μ
- κ²½λ‘
κ°μ μ λ°λΌ κ° μ μλ κΈΈ
- κ²½λ‘μ κΈΈμ΄
κ²½λ‘λ₯Ό ꡬμ±νλλ μ¬μ©λ κ°μ μ μ
- λ¨μ κ²½λ‘μ μ¬μ΄ν΄
κ²½λ‘ μ€μμ λ°λ³΅λλ κ°μ μ΄ μλ κ²½λ‘
- μ°κ²° κ·Έλν
λͺ¨λ μ μ λ€ μ¬μ΄μ κ²½λ‘κ° μ‘΄μ¬νλ©΄ μ°κ²° κ·Έλν
- νΈλ¦¬
μ¬μ΄ν΄μ κ°μ§μ§ μλ μ°κ²° κ·Έλν
- μμ κ·Έλν
λͺ¨λ μ μ κ°μ κ°μ μ΄ μ‘΄μ¬νλ κ·Έλν