-
[Data Structure] κ·Έλνμ νΈλ¦¬Data Structure 2022. 3. 14. 09:13
κ·Έλνμ νΉμ§
- λ Έλμ λ Έλλ₯Ό μ°κ²°νλ κ°μ μ νλλ‘ λͺ¨μλμ μλ£κ΅¬μ‘°
- λ°©ν₯ κ·Έλν (Directed) μ 무방ν₯ κ·Έλν (Undirected) λ‘ λλλ€.
- μ¬μ΄ν΄ (Cycle) μ΄ μμ μλ μκ³ , μ체 κ°μ (Self-loop) λ μμ μ μλ€.
- λ£¨νΈ λ Έλ, λΆλͺ¨-μμμ κ°λ μ΄ μλ€.
- μν λ°©λ²μ BFS, DFSκ° μλ€.
- κ°μ μ μκ° μ νλμ΄μμ§ μλ€.
κ·Έλν μ©μ΄
μ μ (vertex) : μμΉ (node)
κ°μ (edge) : μμΉ κ°μ κ΄κ³. λ Έλλ₯Ό μ°κ²°νλ μ (link)
μΈμ μ μ (adjacent vertex) : κ°μ μ μν΄ μ§μ μ°κ²°λ μ μ
μ μ μ μ°¨μ (degree) : 무방ν₯ κ·Έλνμμ νλμ μ μ μ μΈμ ν μ μ μ μ
μ§μ μ°¨μ (in-degree) : λ°©ν₯ κ·Έλνμμ μ μ μΌλ‘ λ€μ΄μ€λ κ°μ μ μ
μ§μΆ μ°¨μ (out-degree) : λ°©ν₯ κ·Έλνμμ μ μ μΌλ‘ ν₯νλ κ°μ μ μ
λ¨μ κ²½λ‘ (Simple path) : κ²½λ‘ μ€μμ λ°λ³΅λλ μ μ μ΄ μλ κ²½μ°
μ¬μ΄ν΄ (Cycle) : λ¨μ κ²½λ‘μ μμ μ μ κ³Ό λ μ μ μ΄ λμΌν κ²½μ°
무ν₯ κ·Έλν (Undirected Graph)
- κ°μ μ ν΅ν΄μ μ λ°©ν₯μΌλ‘ κ° μ μλ€. (u, v) = (v, u)
- ex) μλ°©ν₯ ν΅ν λλ‘
μ ν₯ κ·Έλν (Directed Graph)
- κ°μ μ λ°©ν₯μ±μ΄ μ‘΄μ¬. <u, v> != <u, v>
- ex) μΌλ°© ν΅ν λλ‘
μμ κ·Έλν (Complete Graph)
- κ·Έλνμ μν λͺ¨λ μ μ μ΄ μλ‘ μ°κ²°λμ΄ μλ κ·Έλνλ‘, μ΅λ μ μ μ κ°λλ€.
- nκ°μ vertexλ₯Ό κ°μ§ 무방ν₯ κ·Έλνμ μ΅λ μ μ μ = n(n - 1) / 2
- n κ°μ vertexλ₯Ό κ°μ§ λ°©ν₯ κ·Έλνμ μ΅λ μ μ μ = n(n - 1)
κ°μ€μΉ κ·Έλν (Weighted Graph)
- κ°μ μ λΉμ©μ΄λ κ°μ€μΉκ° ν λΉλ κ·Έλνλ‘, λ€νΈμν¬λΌκ³ λ νλ€.
- ex) ν΅μ λ§ μ¬μ©λ£
μ°κ²° κ·Έλν (Connected Graph)
- 무방ν₯ κ·Έλνμ μλ λͺ¨λ μ μ μ μ¬μ΄μ νμ κ²½λ‘κ° μ‘΄μ¬νλ κ·Έλν
- ex) νΈλ¦¬ (Tree) : μ¬μ΄ν΄μ κ°μ§ μλ μ°κ²° κ·Έλν
λΉμ°κ²° κ·Έλν (Unconnected Graph)
- 무방ν₯ κ·Έλνμμ νΉμ μ μ μ μ¬μ΄μ κ²½λ‘κ° μ‘΄μ¬νμ§ μλ κ·Έλν
νΈλ¦¬μ νΉμ§
- μ°κ²° κ·Έλνμ΄λ€.
- λ°©ν₯μ±μ΄ μλ λΉμν κ·Έλνμ΄λ€. (μ¬μ΄ν΄ X, μ체 κ°μ X)
- νΈλ¦¬μ κ°μ κ°μλ λ°λμ μ μ μ - 1μ΄λ€.
- κ³μΈ΅ κ΄κ³ (λΆλͺ¨ - μμ κ΄κ³)μ΄λ―λ‘ 1κ°μ λ£¨νΈ λ Έλλ§ μ‘΄μ¬νκ³ , λͺ¨λ μμ λ Έλλ 1κ°μ λΆλͺ¨ λ Έλλ§μ κ°μ§λ€.
- μν λ°©λ² : DFS, BFS, μ μ μν, μ€μ μν, νμ μν
κ·Έλν ꡬν λ°©λ² (1) - μΈμ 리μ€νΈ
- κ°μ₯ μΌλ°μ μΈ λ°©λ²μΌλ‘ vector, arrayListλ‘ κ΅¬ν
- μ΄λ€ λ Έλμ μΈμ ν λ Έλλ€μ μ½κ² μ°Ύμ μ μλ€.
- λͺ¨λ κ°μ μ μλ₯Ό O(N+E) μ μ μ μλ€.
- κ°μ μ μ‘΄μ¬ μ¬λΆλ₯Ό μκΈ° μν΄μλ μ μ μ μ°¨μλ§νΌμ μκ° νμ

κ·Έλν ꡬν λ°©λ² (2) - μΈμ νλ ¬
- κ°μ μ΄ λ§μ λ°μ§ κ·Έλνμ κ²½μ°μ μ¬μ©
- λ μ μ μ μ°κ²°νλ κ°μ μ μ¬λΆλ₯Ό O(1)μ μ μ μλ€.
- μ μ μ μ°¨μλ O(N)μ μ μ μλ€.
- μ΄λ€ λ Έλμ μΈμ ν λ Έλλ₯Ό μ°ΎκΈ° μν΄μλ λͺ¨λ λ Έλλ₯Ό μνν΄μΌνλ€.
- κ·Έλνμ μ‘΄μ¬νλ λͺ¨λ κ°μ μ μλ O(N^2)μ μ μ μλ€.

'Data Structure' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Data Structure] ν (Queue) (0) 2022.02.13 [Data Structure] μ€ν (Stack) (0) 2022.02.09 [Data Structure] Linked List (Feat. Array) (0) 2022.01.12