Non-Linear Data Structure
μ΄λ²μλ λΉμ ν μλ£κ΅¬μ‘°μ λν΄ μ΄ν΄λ³΄μ.
λΉμ ν μλ£κ΅¬μ‘°λ 1:N λλ N:Nμ κ΄κ³λ₯Ό κ°μ§ μλ£κ΅¬μ‘°μ΄λ€. λνμ μΌλ‘ νΈλ¦¬μ κ·Έλνν μλ£κ΅¬μ‘°κ° λ°λ‘ λΉμ ν μλ£κ΅¬μ‘°μ΄λ€.
Tree
1κ° μ΄μμ λ Έλλ‘ κ΅¬μ±λμ΄ λ§μΉ λ무μ λͺ¨μμ νκ³ μκΈ°μ νΈλ¦¬λΌλ μ΄λ¦μ΄ λΆμ μλ£κ΅¬μ‘°μ΄λ€. μ°λ¦¬μκ² κ°μ₯ μ΅μν νΈλ¦¬ ν μλ£κ΅¬μ‘°κ° λ°λ‘ μ»΄ν¨ν°μ ν΄λ ꡬ쑰μ΄λ€.

μ κ·Έλ¦Όκ³Ό κ°μ΄ νλμ μ΅μμ λΆλͺ¨ λ Έλλ‘(root) λΆν° μμ λ Έλ λ€μ΄ νμλλ ννλ₯Ό κ°μ§κ³ μλ€. λΉμ ν μλ£ κ΅¬μ‘°μ΄κΈ° λλ¬Έμ κ°κ°μ λ Έλ λ€μ μμ°¨μ μΌλ‘ λ°μ΄ν°κ° μ μ₯λμ§ μμΌλ©°, νΈλ¦¬ λ΄μ νΈλ¦¬κ° μλ μ¬κ·μ ννμ μλ£κ΅¬μ‘°μ΄λ€.
νΈλ¦¬ μ€, ν λ°©ν₯μΌλ‘λ§ μμ λ Έλλ₯Ό κ°μ§ κ²½μ° νΈν₯ νΈλ¦¬λΌκ³ νλ©°, λΆλͺ¨ λ Έλμ μμ λ Έλκ° 2κ° μ΄νμΈ νΈλ¦¬λ₯Ό μ΄μ§ νΈλ¦¬λΌκ³ νλ€. μ΄μ§ νΈλ¦¬ μ€ μμ£Ό μ¬μ©λλ νΈλ¦¬κ° λ°λ‘ ν κ³Ό μ΄μ§ νμ νΈλ¦¬μ΄λ€.
Heap (ν)
νμ μμ μ΄μ§νΈλ¦¬λ‘μ¨, μ΅λ/μ΅μ κ°μ μ°Ύλ μ°μ°μ νΈλ¦¬νκΈ° μν΄ κ³ μλ μλ£κ΅¬μ‘°μ΄λ€.
μμ μ΄μ§ νΈλ¦¬λ λͺ¨λ λ Έλ λ€μ΄ 2κ° μ΄νμ μμλ Έλλ₯Ό κ°μ§ νΈλ¦¬λ₯Ό λ§νλ€.
νμ λΆλͺ¨ λ Έλκ° μμ λ Έλμ ν© λ³΄λ€ ν° μ΅λ ν (parent node >= childs node1 + childs node2)κ³Ό

λ°λλ‘ λΆλͺ¨ λ Έλκ° μμ λ Έλμ ν© λ³΄λ€ μμ μ΅μ ν (parent node <= childs node1 + childs node2) μΌλ‘ λλλ€.

곡ν΅μ μ λΆλͺ¨ λ Έλμ κ°μ΄ νμ μ΅λ ν μμλ μ΅λ, μ΅μ ν μμλ μ΅μκ°μ κ°μ§λ€λ μ μ΄λ€.
μΌλ°μ μΌλ‘ λ°°μ΄μ ν΅νμ¬ νμ ꡬννλ©°, μ΅λ / μ΅μ ν μ λ Έλλ₯Ό μ½μ μ, μλμ κ°μ κ³Όμ μ λ°λ₯Έλ€.
λ°μ΄ν°λ₯Ό λ§μ§λ§ μΈλ±μ€μ μΆκ°
λΆλͺ¨ λ Έλμ λΉκ΅ν΄ λΆλͺ¨ λ Έλλ³΄λ€ (μλ€λ©΄/ ν¬λ€λ©΄) κ·Έλλ‘
λΉκ΅ μ λΆλͺ¨ λ Έλλ³΄λ€ (ν¬λ€λ©΄ / μλ€λ©΄) λΆλͺ¨ λ Έλμ μμΉλ₯Ό λ°κΎΌλ€.
λ°λλ‘ λ Έλ μμ μ
λ£¨νΈ λ Έλ μμ
λ£¨νΈ λ Έλκ° μλ μ리μ λ§μ§λ§ λ Έλ μμΉ μν΄
νμ μ¬κ΅¬μ± -> λ§μ½ μμ λ Έλλ³΄λ€ λ£¨νΈ λ Έλκ° (ν¬λ€λ©΄ / μλ€λ©΄) κ·Έλλ‘, (μλ€λ©΄ / ν¬λ€λ©΄) μμ λ Έλμ μμΉ λ³κ²½
μ΄μ§ νμ νΈλ¦¬ (Binary Search Tree)
μ΄λ¦ κ·Έλλ‘ νμμ μν΄ μ¬μ©λλ μ΄μ§ νΈλ¦¬μ ννλ₯Ό κ°μ§ μλ£κ΅¬μ‘°μ΄λ€. λ°λΌμ, νμμ μν΄ κ° λ Έλλ μ μΌν ν€ κ°μ κ°μ§λ©°, λ Έλμ μΌμͺ½ μμ λ Έλλ ν΄λΉ λ Έλμ ν€ κ°λ³΄λ€ νμ μμ κ°μ, μ€λ₯Έμͺ½ λ Έλλ ν° κ°μ κ°μ§λ€. λ¬Όλ‘ , μμ λ Έλ λ€λ μ΄μ§ νμ νΈλ¦¬μ¬μΌ νλ€.

μ΄μ§ νμ νΈλ¦¬λ μλμ κ°μ κ³Όμ μ λ°λ³΅νλ©° νμμ μ€ννλ€.
λ£¨νΈ λ Έλ (νμ¬ λ Έλ)μ λͺ©μ ν€ κ° λΉκ΅ (μΌμΉνλ©΄ μ’ λ£)
λͺ©μ ν€ κ°λ³΄λ€ νμ¬ λ Έλ κ°μ΄ ν¬λ€λ©΄ μΌμͺ½ μμ λ Έλλ‘ νμ μ§ν
λͺ©μ ν€ κ°λ³΄λ€ νμ¬ λ Έλ κ°μ΄ μλ€λ©΄ μ€λ₯Έμͺ½ μμ λ Έλλ‘ νμ μ§ν
μ¦, νΈλ¦¬μ λμ΄λ§νΌ νμμ΄ μ§νλκ² λλλ°, μ κ·Έλ¦Όμμλ μ΅λ 3λ²μ νμμ΄ μ΄λ£¨μ΄μ§λ€.
λ Έλ μ½μ μμλ
λͺ©ν κ°μ λ£¨νΈ λ Έλ (νμ¬ λ Έλ) μ λΉκ΅ν΄ κ°λ€λ©΄ μ€λ³΅ κ° λ°μμΌλ‘ μ’ λ£
μ€λ³΅λμ§ μκ³ λͺ©ν κ°μ΄ νμ¬ λ Έλμ λΉκ΅ν΄ μλ€λ©΄ μΌμͺ½ μμ λ Έλλ₯Ό νμν΄ λΉμ΄ μλ€λ©΄ μΆκ°, λΉμ΄μμ§ μλ€λ©΄ 1μ κ³Όμ λΆν° λ°λ³΅
μ€λ³΅ λμ§ μκ³ λͺ©ν κ°μ΄ νμ¬ λ Έλμ λΉκ΅ν΄ ν¬λ€λ©΄ μ€λ₯Έμͺ½ μμ λ Έλλ₯Ό νμν΄ λΉμ΄ μλ€λ©΄ μΆκ°, λΉμ΄μμ§ μλ€λ©΄ 1μ κ³Όμ λΆν° λ°λ³΅
μ μ°μ°μ μ€μνλ€.
Graph
μ¬λ¬ κ°μ λ Έλ(μ )μ λ Έλ λ€μ μ°κ²°νλ κ°μ μΌλ‘ μ΄λ£¨μ΄μ§ μλ£κ΅¬μ‘°μ΄λ€. μμμ μ΄ν΄λ³Έ νΈλ¦¬λ κ·Έλνμ μΌμ’ μ΄λ©°, νΈλ¦¬μ λ€λ₯΄κ² λΆλͺ¨/μμ λ Έλμ κ°λ μ΄ μλ€.

κ·Έλνμλ λ μ μ μ μ°κ²°νλ κ°μ μ λ°©ν₯μ΄ μλ 무 λ°©ν₯ κ·Έλν, λ°©ν₯μ΄ μλ λ°©ν₯ κ·Έλν, κ·Έλνμ λͺ¨λ μ μ μ΄ μ°κ²°λμ΄μλ μμ κ·Έλν λ±μ μ¬λ¬ κ·Έλν κ° μ‘΄μ¬νλ€.
λ³΄ν΅ κ·Έλν ꡬν μ μΈμ 리μ€νΈλ₯Ό μ¬μ©νμ¬ κ΅¬ννλ€. μΈμ 리μ€νΈλ, κ° μ μ μ μΈμ ν μ μ λ€μ 리μ€νΈλ‘ ννν κ²μ λ§νλ€.

Last updated