μ ν μλ£κ΅¬μ‘°(Linear Data Structure)
μ ν μλ£κ΅¬μ‘°λ λ°μ΄ν° μμλ€μ΄ μΌλ ¬λ‘ λ°°μΉλμ΄ μλ μλ£κ΅¬μ‘°λ₯Ό μλ―Έν©λλ€. μ΄λ¬ν μλ£κ΅¬μ‘°μμ λ°μ΄ν° μμλ μμλ₯Ό κ°μ§λ©°, κ°κ°μ μμλ λ°λ‘ μ΄μ μμμ λ°λ‘ λ€μ μμμ κ΄λ ¨μ΄ μμ΅λλ€. μ ν μλ£κ΅¬μ‘°λ λ°μ΄ν°λ₯Ό μμ°¨μ μΌλ‘ μ κ·Όνκ³ μ‘°μνλλ° μ μ©νλ©°, κ°λ¨ν ꡬ쑰λ‘μ λ€μν μκ³ λ¦¬μ¦κ³Ό μμ© λΆμΌμμ νμ©λ©λλ€.
μ¬λ¬ κ°μ§ μ ν μλ£κ΅¬μ‘°μ μμμ νΉμ§μ μ΄ν΄λ³΄κ² μ΅λλ€
1. λ°°μ΄ (Array)
- κ°μ₯ κΈ°λ³Έμ μΈ μ ν μλ£κ΅¬μ‘°λ‘, λμΌν λ°μ΄ν° νμ
μ μμλ€μ μμ°¨μ μΌλ‘ μ μ₯ν©λλ€.
- μΈλ±μ€λ₯Ό μ¬μ©νμ¬ κ° μμμ μ κ·Όνκ³ , νΉμ μμΉμ μμλ₯Ό μ½μ
, μμ ν μ μμ΅λλ€.
- λ°μ΄ν° κ²μκ³Ό μ κ·Όμ΄ λΉ λ₯΄μ§λ§, μ€κ°μ μμλ₯Ό μ½μ
νκ±°λ μμ ν κ²½μ° λ°μ΄ν° μ΄λμ΄ νμνλ―λ‘ λΉν¨μ¨μ μΌ μ μμ΅λλ€.
2. μ°κ²° 리μ€νΈ (Linked List)
- λ
Έλ(Node)λ€μ΄ μ°κ²°λ κ΅¬μ‘°λ‘ λ°μ΄ν°λ₯Ό μ μ₯ν©λλ€.
- κ° λ
Έλλ λ°μ΄ν°μ λ€μ λ
Έλλ₯Ό κ°λ¦¬ν€λ ν¬μΈν°λ‘ ꡬμ±λ©λλ€.
- λ°μ΄ν°μ μ½μ
κ³Ό μμ κ° λΉ λ₯΄λ©°, λμ μΌλ‘ ν¬κΈ°λ₯Ό μ‘°μ ν μ μμ΅λλ€.
- νμ§λ§ νΉμ μμΉμ μμμ μ κ·Όνλ €λ©΄ μ²μλΆν° μνν΄μΌ νλ―λ‘ κ²μμ΄ μλμ μΌλ‘ λ릴 μ μμ΅λλ€.
3. μ€ν (Stack)
- νμ
μ μΆ(LIFO, Last-In-First-Out) μμΉμ λ°λ₯΄λ μλ£κ΅¬μ‘°μ
λλ€.
- μμλ₯Ό μ€νμ 맨 μμ μ½μ
νκ±°λ μμ ν μ μμ΅λλ€.
- μ£Όλ‘ ν¨μ νΈμΆ, μ¬κ· μκ³ λ¦¬μ¦ λ±μμ μ¬μ©λ©λλ€.
4. ν (Queue)
- μ μ
μ μΆ(FIFO, First-In-First-Out) μμΉμ λ°λ₯΄λ μλ£κ΅¬μ‘°μ
λλ€.
- μμλ₯Ό νμ λ€μ μ½μ
νκ³ μμμ μμ ν μ μμ΅λλ€.
- νλ‘μΈμ€ μ€μΌμ€λ§, μμ
λκΈ°μ΄ λ±μμ μ¬μ©λ©λλ€.
5. λ°ν¬ (Deque, Double-Ended Queue)
- μμͺ½ λμμ μ½μ
κ³Ό μμ κ° κ°λ₯ν μλ£κ΅¬μ‘°μ
λλ€.
- νμ μ€νμ νΉμ±μ κ²°ν©ν κ²μΌλ‘, λ€μν μν©μμ μ μ©ν©λλ€.
6. μ ν λ°°μ΄ (Vectors)
- λ°°μ΄κ³Ό μ μ¬νμ§λ§ λμ μΌλ‘ ν¬κΈ°λ₯Ό μ‘°μ ν μ μλ λμ λ°°μ΄ μλ£κ΅¬μ‘°μ
λλ€.
- λ°°μ΄μ μ₯μ κ³Ό μ°κ²° 리μ€νΈμ μ₯μ μ μ‘°ν©ν κ²μΌλ‘, μμμ μ½μ
, μμ , κ²μμ΄ ν¨μ¨μ μ
λλ€.
μ ν μλ£κ΅¬μ‘°λ λ°μ΄ν°μ μμλ₯Ό μ€μνκ² λ€λ£¨λ©°, κ°κ°μ νΉμ§κ³Ό μ₯λ¨μ μ λ°λΌ λ€μν μν©μμ μ μ ν μ νμ΄ νμν©λλ€.
μ ν μλ£κ΅¬μ‘°μ μ½μ /μμ /κ²μ
μ ν μλ£κ΅¬μ‘°μΈ λ°°μ΄, μ°κ²° 리μ€νΈ, μ€ν, ν λ±μ μ½μ /μμ /κ²μμ μΈ‘λ©΄μμ λΉκ΅νλ©΄μ κ°κ°μ μ₯λ¨μ μ μ΄ν΄λ³΄κ² μ΅λλ€.
1. λ°°μ΄ (Array)
- μ₯μ
- μΈλ±μ€λ₯Ό μ¬μ©νμ¬ λΉ λ₯΄κ² μμμ μ κ·Ό κ°λ₯ (O(1)).
- λ©λͺ¨λ¦¬κ° μ°μμ μΌλ‘ ν λΉλλ―λ‘ μΊμ νμ©μ μ 리ν μ μμ.
- λ¨μ
- μμμ μ½μ
/μμ μ ν΄λΉ μμΉμ μμλ₯Ό μ΄λν΄μΌ νλ―λ‘ λΉν¨μ¨μ (μ΅μ
μ κ²½μ° O(n)).
- ν¬κΈ°κ° κ³ μ λμ΄ λμ μΌλ‘ ν¬κΈ°λ₯Ό μ‘°μ νκΈ° μ΄λ €μ.
2. μ°κ²° 리μ€νΈ (Linked List)
- μ₯μ
- μ½μ
/μμ κ° λΉ λ₯΄κ³ ν¨μ¨μ (O(1)), λ
Έλλ§ μμ νλ©΄ λλ―λ‘ λ°μ΄ν° μ΄λ μμ.
- λμ μΌλ‘ ν¬κΈ°λ₯Ό μ‘°μ κ°λ₯.
- λ¨μ
- κ²μ μ μ²μλΆν° μνν΄μΌ νλ―λ‘ λ릴 μ μμ (O(n)).
- μΆκ°μ μΈ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©νμ¬ ν¬μΈν°λ‘ μΈν μ€λ²ν€λκ° λ°μ.
3. μ€ν (Stack)
- μ₯μ
- νμ
μ μΆ(LIFO)μΌλ‘ μ½μ
/μμ κ° λΉ λ₯΄κ³ κ°λ¨ (O(1)).
- ν¨μ νΈμΆ, μ¬κ· λ±μμ νμ© κ°λ₯.
- λ¨μ
- μ€νμ 맨 μμ μλ μμμλ§ μ κ·Ό κ°λ₯νλ―λ‘ μ€κ°μ μμμ μ κ·ΌνκΈ° μ΄λ €μ.
- ν¬κΈ° μ νμ΄ μλ κ²½μ° λ©λͺ¨λ¦¬ μ€λ²νλ‘μ° κ°λ₯μ± μμ.
4. ν (Queue)
- μ₯μ
- μ μ
μ μΆ(FIFO)λ‘ μ½μ
/μμ κ° λΉ λ₯΄κ³ κ°λ¨ (O(1)).
- νλ‘μΈμ€ μ€μΌμ€λ§, μμ
λκΈ°μ΄ λ±μμ νμ© κ°λ₯.
- λ¨μ
- νμ μλΆλΆμ μλ μμμλ§ μ κ·Ό κ°λ₯νλ―λ‘ μ€κ°μ μμμ μ κ·ΌνκΈ° μ΄λ €μ.
- ν¬κΈ° μ νμ΄ μλ κ²½μ° λ©λͺ¨λ¦¬ μ€λ²νλ‘μ° κ°λ₯μ± μμ.
5. λ°ν¬ (Deque, Double-Ended Queue)
- μ₯μ
- μμͺ½ λμμ μ½μ
/μμ κ° λΉ λ₯΄κ³ κ°λ¨ (O(1)).
- νμ μ€νμ νΉμ±μ κ²°ν©νμ¬ λ€μν μν©μ νμ© κ°λ₯.
- λ¨μ
- μ€κ°μ μμμ μ κ·ΌνκΈ° μ΄λ €μΈ μ μμ.
- λ°ν¬μ ꡬνμ λ°λΌ λ©λͺ¨λ¦¬ μ¬μ©λμ΄ μ¦κ°ν μ μμ.
'μλ£κ΅¬μ‘°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μλ£κ΅¬μ‘°λ₯Ό λ°°μμΌ νλ μ΄μ (0) | 2023.08.11 |
---|
λκΈ