Singly Linked List (λ¨μΌ μ°κ²° 리μ€νΈ)
κ° μμκ° λ€μ μμλ§ κ°λ¦¬ν€λ λ¨μΌ λ°©ν₯ ꡬ쑰μ΄λ€.

μκ° λ³΅μ‘λ
κ²μ
- μ²μ λ Έλ(head)λΆν° νλμ© μννλ©° μνλ κ°μ μ°ΎμμΌ νλ―λ‘ O(n)
μ½μ
- μμμ μμλ₯Ό μ½μ νλ κ²½μ°, head λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- μ€κ°μ μμλ₯Ό μ½μ νλ κ²½μ°, μ²μλΆν° μννμ¬ μ½μ ν μμΉμ μ΄μ λ Έλλ₯Ό μ°ΎμμΌ νλ―λ‘ O(n)
- λ¨, μ½μ μμ μ체λ ν΄λΉ λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- λμ μμλ₯Ό μ½μ νλ κ²½μ°, μ²μλΆν° μννμ¬ λ§μ§λ§ λ Έλλ₯Ό μ°ΎμμΌ νλ―λ‘ O(n)
- λ¨, μ½μ μμ μ체λ ν΄λΉ λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
μμ
- μμ μμλ₯Ό μμ νλ κ²½μ°, head λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- μ€κ° μμλ₯Ό μμ νλ κ²½μ°, μ²μλΆν° μννμ¬ μμ ν μμΉμ μ΄μ λ Έλλ₯Ό μ°ΎμμΌ νλ―λ‘ O(n)
- λ¨, μμ μμ μ체λ ν΄λΉ λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- λ μμλ₯Ό μμ νλ κ²½μ°, μ²μλΆν° μννμ¬ λ§μ§λ§ λ Έλλ₯Ό μ°ΎμμΌ νλ―λ‘ O(n)
- λ¨, μμ μμ μ체λ ν΄λΉ λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
μ¬μ© μ¬λ‘
- μ€νκ³Ό νμ ꡬν: μ½μ λ° μμ μ°μ°μ΄ O(1)μ μκ°λ³΅μ‘λλ₯Ό κ°μ§κΈ° λλ¬Έμ μ€ν/ν ꡬνμ μ£Όλ‘ μ¬μ©λλ€.
Doubly Linked List (μ΄μ€ μ°κ²° 리μ€νΈ)
κ° μμκ° μ΄μ μμμ λ€μ μμλ₯Ό λͺ¨λ κ°λ¦¬ν€λ μ΄μ€ λ°©ν₯ ꡬ쑰μ΄λ€.
κ° λ Έλκ° λ€μ(next) λ Έλμ μ΄μ (prev) λ Έλλ₯Ό κ°λ¦¬ν€λ λ κ°μ ν¬μΈν°λ₯Ό κ°μ§κ³ μλ€.

μκ° λ³΅μ‘λ
κ²μ
- μ²μ λ Έλ(head)λΆν° νλμ© μννλ©° μνλ κ°μ μ°ΎμμΌ νλ―λ‘ O(n)
μ½μ
- μμμ μμλ₯Ό μ½μ νλ κ²½μ°, head λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- μ€κ°μ μμλ₯Ό μ½μ νλ κ²½μ°, μ²μλΆν° μννμ¬ μ½μ ν μμΉμ μ΄μ λ Έλλ₯Ό μ°ΎμμΌ νλ―λ‘ O(n)
- λ¨, μ½μ μμ μ체λ ν΄λΉ λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- λμ μμλ₯Ό μ½μ νλ κ²½μ°, tail λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
μμ
- μμ μμλ₯Ό μμ νλ κ²½μ°, head λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- μ€κ° μμλ₯Ό μμ νλ κ²½μ°, μ²μλΆν° μννμ¬ μμ ν μμΉμ μ΄μ λ Έλλ₯Ό μ°ΎμμΌ νλ―λ‘ O(n)
- λ¨, μμ μμ μ체λ ν΄λΉ λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- λ μμλ₯Ό μμ νλ κ²½μ°, tail λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
μ¬μ© μ¬λ‘
- ν μ€νΈ μλν° κ΅¬ν: μ¬μ©μκ° μ»€μλ₯Ό μ λ€λ‘ μμ§μ΄λ©΄μ ν μ€νΈλ₯Ό νΈμ§ν μ μμ΄μΌ νλ€. μ΄λ μ΄μ€ μ°κ²° 리μ€νΈκ° μ μ©νλ©° κ° λ Έλκ° ν λ¬Έμλ₯Ό λνλ΄λ λ°©μμΌλ‘ ꡬνλ μ μλ€.
- λΈλΌμ°μ μ νμ€ν 리: λΈλΌμ°μ μμ 'μμΌλ‘ κ°κΈ°'μ 'λ€λ‘ κ°κΈ°' λ²νΌμ ꡬνν λ ν¨κ³Όμ μ΄λ€. κ° λ Έλλ ν κ°μ μΉ νμ΄μ§ URLμ μ μ₯νκ³ , μ¬μ©μκ° μ/λ€λ‘ μ΄λν λλ§λ€ μ΄μ€ μ°κ²° 리μ€νΈλ₯Ό ν΅ν΄ μ½κ² νμν μ μλ€.
- μΊμ ꡬν: LRU(Least Recently Used) Cacheμ κ°μ΄ μ½μ /μμ κ° λΉλ²ν κ²½μ° μ΄μ€ μ°κ²° 리μ€νΈλ₯Ό μ¬μ©νλ©΄ ν¨μ¨μ μ΄λ€. μ€κ°μ μλ‘μ΄ νλͺ©μ μ½μ νκ±°λ κ°μ₯ μ€λλ νλͺ©μ μμ νλ μμ μ λΉ λ₯΄κ² μνν μ μλ€.
Circular Linked List (μν μ°κ²° 리μ€νΈ)
λ§μ§λ§ μμμ ν¬μΈν°κ° 첫 μμλ₯Ό κ°λ¦¬ν€λ ννλ‘ κ΅¬μ±λ μ°κ²°λ¦¬μ€νΈμ΄λ€.
λ¨μΌ μν μ°κ²° 리μ€νΈ

μκ° λ³΅μ‘λ
κ²μ
- μ²μ λ Έλ(head)λΆν° νλμ© μννλ©° μνλ κ°μ μ°ΎμμΌ νλ―λ‘ O(n)
μ½μ
- μμμ μμλ₯Ό μ½μ νλ κ²½μ°, head λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- μ€κ°μ μμλ₯Ό μ½μ νλ κ²½μ°, μ²μλΆν° μννμ¬ μ½μ ν μμΉμ μ΄μ λ Έλλ₯Ό μ°ΎμμΌ νλ―λ‘ O(n)
- λ¨, μ½μ μμ μ체λ ν΄λΉ λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- λμ μμλ₯Ό μ½μ νλ κ²½μ°, μ²μλΆν° μννμ¬ λ§μ§λ§ λ Έλλ₯Ό μ°ΎμμΌ νλ―λ‘ O(n)
- λ¨, μ½μ μμ μ체λ ν΄λΉ λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
μμ
- μμ μμλ₯Ό μμ νλ κ²½μ°, head λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- μ€κ° μμλ₯Ό μμ νλ κ²½μ°, μ²μλΆν° μννμ¬ μμ ν μμΉμ μ΄μ λ Έλλ₯Ό μ°ΎμμΌ νλ―λ‘ O(n)
- λ¨, μμ μμ μ체λ ν΄λΉ λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- λ μμλ₯Ό μμ νλ κ²½μ°, μ²μλΆν° μννμ¬ λ§μ§λ§ λ Έλλ₯Ό μ°ΎμμΌ νλ―λ‘ O(n)
- λ¨, μμ μμ μ체λ ν΄λΉ λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
μ΄μ€ μν μ°κ²° 리μ€νΈ

μκ° λ³΅μ‘λ
κ²μ
- μ²μ λ Έλ(head)λΆν° νλμ© μννλ©° μνλ κ°μ μ°ΎμμΌ νλ―λ‘ O(n)
μ½μ
- μμμ μμλ₯Ό μ½μ νλ κ²½μ°, head λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- μ€κ°μ μμλ₯Ό μ½μ νλ κ²½μ°, μ²μλΆν° μννμ¬ μ½μ ν μμΉμ μ΄μ λ Έλλ₯Ό μ°ΎμμΌ νλ―λ‘ O(n)
- λ¨, μ½μ μμ μ체λ ν΄λΉ λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- λμ μμλ₯Ό μ½μ νλ κ²½μ°, head λ Έλμ μ΄μ (prev) μ£Όμλ₯Ό λ°λΌκ°λ©΄ λ§μ§λ§ λ Έλκ° μκΈ° λλ¬Έμ O(1)
μμ
- μμ μμλ₯Ό μμ νλ κ²½μ°, head λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- μ€κ° μμλ₯Ό μμ νλ κ²½μ°, μ²μλΆν° μννμ¬ μμ ν μμΉμ μ΄μ λ Έλλ₯Ό μ°ΎμμΌ νλ―λ‘ O(n)
- λ¨, μμ μμ μ체λ ν΄λΉ λ Έλμ ν¬μΈν°λ§ λ³κ²½νλ©΄ λλ―λ‘ O(1)
- λ μμλ₯Ό μμ νλ κ²½μ°, head λ Έλμ μ΄μ (prev) μ£Όμλ₯Ό λ°λΌκ°λ©΄ λ§μ§λ§ λ Έλκ° μκΈ° λλ¬Έμ O(1)
μ¬μ© μ¬λ‘
- Round Robin μκ³ λ¦¬μ¦μ μ΄μ©ν νλ‘μΈμ€ μ€μΌμ€λ§: μλ₯Ό λ€μ΄, νλ‘μΈμ€ A, B, Cκ° μμ λ, Circular Linked Listλ A -> B -> C -> Aμ ννλ‘ κ΅¬μ±λλ€. μ€μΌμ€λ¬λ μ΄ λ¦¬μ€νΈλ₯Ό λ°λΌ μννλ©΄μ κ° νλ‘μΈμ€μκ² CPUλ₯Ό ν λΉνλ€. (νλ‘μΈμ€ Cμ μκ° ν λΉμ΄ λλλ©΄ λ€μ νλ‘μΈμ€ Aλ‘ λμκ°κ² λλ€.)
'π» Knowledge > μλ£κ΅¬μ‘°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| π§π»βπ» Doubly Linked List μ§μ ꡬν with dummy head & dummy tail (JAVA) (0) | 2023.09.25 |
|---|---|
| π§π»βπ» Doubly Linked List μ§μ ꡬν (JAVA) (0) | 2023.09.22 |
| π§π»βπ» Singly LinkedList μ§μ ꡬν (JAVA) (0) | 2023.09.21 |
| Array vs ArrayList vs List vs LinkedList λΉκ΅ (0) | 2023.09.21 |
| Array vs LinkedList νΉμ§ & μ±λ₯ λΉκ΅ (0) | 2023.09.21 |