π μ΄μ§ νΈλ¦¬ μν λ°©λ² μλ²½ κ°μ΄λ
μλ νμΈμ! μ€λμ νλ‘κ·Έλλ°μμ λ§μ΄ μ¬μ©λλ μ΄μ§ νΈλ¦¬(Binary Tree)μ μν λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€. μ΄μ§ νΈλ¦¬λ λ Έλκ° μ΅λ λ κ°μ μμ λ Έλλ₯Ό κ°μ§ μ μλ κ³μΈ΅μ μλ£ κ΅¬μ‘°μ λλ€. λ°μ΄ν°λ₯Ό μ μ₯νκ³ νμνλ λ° λ§€μ° ν¨μ¨μ μΈ κ΅¬μ‘°μΈλ°μ, μ΄μ§ νΈλ¦¬μ λ°μ΄ν°λ₯Ό νμν λ μ¬μ©λλ μν λ°©λ²(Traversal)μ λν΄ μμΈν μμλ³Όκ²μ. π
π μ΄μ§ νΈλ¦¬λ?
μ΄μ§ νΈλ¦¬λ λ Έλ(Node)μ κ°μ (Edge)λ‘ κ΅¬μ±λ μλ£ κ΅¬μ‘°μ λλ€. κ° λ Έλλ μ΅λ λ κ°μ μμ λ Έλλ₯Ό κ°μ§λ©°, λ³΄ν΅ μΌμͺ½ μμ λ Έλ(left child)μ μ€λ₯Έμͺ½ μμ λ Έλ(right child)λ‘ κ΅¬λΆλ©λλ€.
π² μ΄μ§ νΈλ¦¬ μνλ?
μ΄μ§ νΈλ¦¬μμ μνλ, νΈλ¦¬ ꡬ쑰μ λͺ¨λ λ Έλλ₯Ό νΉμ μμμ λ°λΌ ν λ²μ© λ°©λ¬Ένλ κ²μ μλ―Έν©λλ€. μν λ°©λ²μ λ°λΌ λ Έλλ₯Ό λ°©λ¬Ένλ μμκ° λ¬λΌμ§λλ€.
μ΄μ§ νΈλ¦¬ μνμλ ν¬κ² μΈ κ°μ§ λ°©λ²μ΄ μμ΅λλ€:
- μ μ μν (Pre-order Traversal)
- μ€μ μν (In-order Traversal)
- νμ μν (Post-order Traversal)
1οΈβ£ μ μ μν (Pre-order Traversal)
λ°©λ¬Έ μμ: λ£¨νΈ β μΌμͺ½ μλΈνΈλ¦¬ β μ€λ₯Έμͺ½ μλΈνΈλ¦¬
μ€λͺ : νΈλ¦¬μ 루νΈλ₯Ό λ¨Όμ λ°©λ¬Έν ν, μΌμͺ½ μμ λ Έλ, κ·Έ λ€μ μ€λ₯Έμͺ½ μμ λ Έλλ₯Ό λ°©λ¬Έν©λλ€.
μμ:
A / \ B C / \ D E
- μ μ μν κ²°κ³Ό:
A β B β D β E β C
- μ μ μν κ²°κ³Ό:
νμ© μ¬λ‘: 볡μ¬λ³Έ μμ±, ꡬ쑰μ λ°μ΄ν° μΆλ ₯ λ±
2οΈβ£ μ€μ μν (In-order Traversal)
λ°©λ¬Έ μμ: μΌμͺ½ μλΈνΈλ¦¬ β λ£¨νΈ β μ€λ₯Έμͺ½ μλΈνΈλ¦¬
μ€λͺ : μΌμͺ½ μμ λ Έλλ₯Ό λ¨Όμ λ°©λ¬Ένκ³ , κ·Έ λ€μ 루νΈ, λ§μ§λ§μΌλ‘ μ€λ₯Έμͺ½ μμ λ Έλλ₯Ό λ°©λ¬Έν©λλ€.
μμ:
A / \ B C / \ D E
- μ€μ μν κ²°κ³Ό:
D β B β E β A β C
- μ€μ μν κ²°κ³Ό:
νμ© μ¬λ‘: μ λ ¬λ λ°μ΄ν° μΆλ ₯, μ΄μ§ κ²μ νΈλ¦¬μμ μ μ©
3οΈβ£ νμ μν (Post-order Traversal)
λ°©λ¬Έ μμ: μΌμͺ½ μλΈνΈλ¦¬ β μ€λ₯Έμͺ½ μλΈνΈλ¦¬ β 루νΈ
μ€λͺ : μΌμͺ½ μμ λ Έλλ₯Ό λ¨Όμ λ°©λ¬Ένκ³ , κ·Έ λ€μ μ€λ₯Έμͺ½ μμ λ Έλ, λ§μ§λ§μΌλ‘ 루νΈλ₯Ό λ°©λ¬Έν©λλ€.
μμ:
A / \ B C / \ D E
- νμ μν κ²°κ³Ό:
D β E β B β C β A
- νμ μν κ²°κ³Ό:
νμ© μ¬λ‘: νΈλ¦¬ ꡬ쑰 μμ , κ³μ°μ νΈλ¦¬ νκ°
π‘ μ΄μ§ νΈλ¦¬ μν λ°©λ²μ λΉκ΅
μν λ°©λ² | λ°©λ¬Έ μμ | μμ κ²°κ³Ό |
---|---|---|
μ μ μν | λ£¨νΈ β μ’ β μ° | A β B β D β E β C |
μ€μ μν | μ’ β λ£¨νΈ β μ° | D β B β E β A β C |
νμ μν | μ’ β μ° β λ£¨νΈ | D β E β B β C β A |
βοΈ μ 리
- μ μ μνλ λ Έλμ ꡬ쑰λ₯Ό μ½κ² 볡μ¬ν λ μ μ©ν©λλ€.
- μ€μ μνλ μ΄μ§ κ²μ νΈλ¦¬(Binary Search Tree)μμ λ°μ΄ν°λ₯Ό μ λ ¬λ μμλ‘ μΆλ ₯ν λ μ¬μ©λ©λλ€.
- νμ μνλ λͺ¨λ λ Έλλ₯Ό μμ νκ±°λ, κ³μ°μ νΈλ¦¬μ κ°μ νκ°ν λ μ ν©ν©λλ€.
π λ§λ¬΄λ¦¬
μ΄μ§ νΈλ¦¬μ μν λ°©λ²μ μ΄ν΄νλ κ²μ νλ‘κ·Έλλ°μμ λ§€μ° μ€μν κ°λ μ λλ€. νΉν, νΈλ¦¬ ꡬ쑰λ₯Ό μ¬μ©ν λ¬Έμ ν΄κ²°μ΄λ μκ³ λ¦¬μ¦ μ΅μ νμμ μμ£Ό νμ©λκΈ° λλ¬Έμ, κ° μν λ°©λ²μ μ°¨μ΄μ κ³Ό νΉμ§μ μ μ΄ν΄νκ³ μλ κ²μ΄ μ’μ΅λλ€.
μ΄ μλ£λ μμ€ν μν€ν μ² μ΄ν΄μ νμ© μλ£λ₯Ό μ°Έκ³ νμ¬ μμ±νμμ΅λλ€. λμμ΄ λμ ¨κΈΈ λ°λΌλ©°, λ€μμλ μ μ΅ν μ λ³΄λ‘ μ°Ύμλ΅κ² μ΅λλ€! π₯οΈπ
κ°μ¬ν©λλ€! π
'Topcit' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μμ€ κ²°ν©λ(Source Coupling) (0) | 2024.11.10 |
---|---|
μ΄μ§ νΈλ¦¬ μν λ°©λ² (μμ ) (0) | 2024.11.10 |
ν΄λμ€ λ€μ΄μ΄κ·Έλ¨ (1) | 2024.11.09 |
Java PreparedStatement (0) | 2024.10.28 |
Java κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° νΉμ§ (0) | 2024.10.28 |