μν μ νμ μμ
- μν λκΈ°μ΄: κ³ κ°λ€μ΄ μ°¨λ‘λ‘ λμ°©νκ³ , λμ°©ν μμλλ‘ μλΉμ€λ₯Ό λ°μ΅λλ€.
- νλ¦°ν° μμ : λ¬Έμλ€μ΄ νλ¦°ν° λκΈ°μ΄μ μ°¨λ‘λ‘ μΆκ°λλ©°, μΆκ°λ μμλλ‘ μΈμλ©λλ€.
- μ½μΌν° μ ν λκΈ°μ΄: μ νκ° μμλλ‘ λκΈ°μ΄μ λ€μ΄κ°κ³ , μ°¨λ‘λ‘ μ°κ²°λ©λλ€.
- μ¨λΌμΈ ν°μΌ μ맀: μ¬μ©μλ€μ΄ μλ²μ μ μν΄ λκΈ°μ΄μ λ€μ΄κ°κ³ , μμμ λ°λΌ ν°μΌμ ꡬ맀ν μ μμ΅λλ€.
ν μλ£κ΅¬μ‘°μ ADT(μΆμ λ°μ΄ν° νμ )
Enqueue: νμ λμ μλ‘μ΄ μμλ₯Ό μΆκ°ν©λλ€.
Dequeue: νμ μμμμ μμλ₯Ό μ κ±°νκ³ λ°νν©λλ€.
Peek / Front: νμ μμμ μλ μμλ₯Ό μ‘°ννμ§λ§ μ κ±°νμ§ μμ΅λλ€.
IsEmpty: νκ° λΉμ΄μλμ§ νμΈν©λλ€.
Size: νμ μ μ₯λ μμμ κ°μλ₯Ό λ°νν©λλ€.
λ°°μ΄ κΈ°λ° ν(μν)
ꡬμ±μμ
- λ°°μ΄: μμλ€μ μ μ₯νλ μ μ λ°°μ΄μ λλ€.
- Front ν¬μΈν°: νμ μμμ κ°λ¦¬ν΅λλ€.
- Rear ν¬μΈν°: νμ λμ κ°λ¦¬ν΅λλ€. = ν.length - 1
- Size/Capacity: λ°°μ΄μ μ΅λ ν¬κΈ°μ λλ€.
μλ μ리
- Enqueue: Rear ν¬μΈν° μμΉμ μμλ₯Ό μΆκ°νκ³ Rearλ₯Ό μ¦κ°μν΅λλ€.
- Dequeue: Front ν¬μΈν° μμΉμ μμλ₯Ό μ κ±°νκ³ Frontλ₯Ό μ¦κ°μν΅λλ€.
- Wrap Around: μν ν(circular queue)μ κ²½μ°, ν¬μΈν°κ° λ°°μ΄ λμ λλ¬νλ©΄ μ²μμΌλ‘ λμκ°λλ€.
- λ°°μ΄μ κ²½κ³λ₯Ό λμ΄κ°λ κ²½μ°λ₯Ό κ°μν΄μ rear++ λμ μ rear = ( rear+1 )%queue.length λλ¨Έμ§ μ°μ°μ μ΄μ©ν©λλ€.
μ£Όμ λ©μλ
- offer(E e) / add(E e) : νμ λμ μμλ₯Ό μΆκ°. offerλ νκ° κ°λ μ°Όμ λ falseλ₯Ό λ°ννκ³ , addλ IllegalStateExceptionμ λμ§
- poll() / remove() : νμ μμμμ μμλ₯Ό μ κ±°νκ³ λ°ν. pollμ νκ° λΉμ΄μμ λ nullμ λ°ννκ³ , removeλ NoSuchElementExceptionμ λμ§
- peek() / element() :νμ μμμ μλ μμλ₯Ό μ‘°ννμ§λ§, μ κ±°νμ§ μμ. peekμ νκ° λΉμ΄μμ λ nullμ λ°ννκ³ , elementλ NoSuchElementExceptionμ λμ§.
- size() : νμ μ μ₯λ μμμ μλ₯Ό λ°ν
- isEmpty() :νκ° λΉμ΄μλμ§ μ¬λΆλ₯Ό λ°ν
μ°κ²° 리μ€νΈ κΈ°λ° ν
ꡬμ±μμ
- λ Έλ: κ° μμλ λ Έλλ‘ ννλ©λλ€.
- ν€λ ν¬μΈν°: νμ μμμ κ°λ¦¬ν΅λλ€.
- ν μΌ ν¬μΈν°: νμ λμ κ°λ¦¬ν΅λλ€.
μλ μ리
- Enqueue: ν μΌμ μμλ₯Ό μΆκ°νκ³ , ν μΌ ν¬μΈν°λ₯Ό μ λ°μ΄νΈν©λλ€.
- Dequeue: ν€λμ μλ μμλ₯Ό μ κ±°νκ³ , ν€λ ν¬μΈν°λ₯Ό μ λ°μ΄νΈν©λλ€.
μ£Όμ λ©μλ
- offer(E e) / add(E e) : νμ λμ μμλ₯Ό μΆκ°. offerμ addλ κΈ°λ₯μ μΌλ‘ λμΌνμ§λ§, addλ IllegalStateExceptionμ λμ§
- poll() / remove() : νμ μμμμ μμλ₯Ό μ κ±°νκ³ λ°ν. pollμ νκ° λΉμ΄μμ λ nullμ λ°ννκ³ , removeλ NoSuchElementExceptionμ λμ§,
- peek() / element() : νμ μμμ μλ μμλ₯Ό μ‘°ννμ§λ§, μ κ±°νμ§ μμ. peekμ νκ° λΉμ΄μμ λ nullμ λ°ννκ³ , elementλ NoSuchElementExceptionμ λμ§
- size() : νμ μ μ₯λ μμμ μλ₯Ό λ°ν
- isEmpty() : νκ° λΉμ΄μλμ§ μ¬λΆλ₯Ό λ°ν
νμ μ₯μ κ³Ό λ¨μ
μ₯μ
- 곡μ μ±: FIFO(First In, First Out) μμΉμ λ°λΌ μμλ€μ΄ μμλλ‘ μ²λ¦¬λ©λλ€.
- κ°λ¨ν¨: νμ μ°μ°λ€μ ꡬννκΈ° μ½κ³ μ΄ν΄νκΈ° μ½μ΅λλ€.
λ¨μ
- λΉν¨μ¨μ±: λ°°μ΄ κΈ°λ° νμμ 곡κ°μ΄ κ³ μ λμ΄ μμ΄ ν¬κΈ° μ‘°μ μ΄ μ΄λ ΅μ΅λλ€. μ°κ²° 리μ€νΈ κΈ°λ° νλ ν¬μΈν°λ₯Ό μν μΆκ° 곡κ°μ΄ νμν©λλ€.
- μλ: μ°κ²° 리μ€νΈ κΈ°λ° νμμλ μμ μ κ·Όμ΄ λ릴 μ μμ΅λλ€.
νμ νμ₯
- μ°μ μμ ν(Priority Queue): μμλ€μ΄ μ°μ μμμ λ°λΌ μ λ ¬λκ³ , κ°μ₯ λμ μ°μ μμλ₯Ό κ°μ§ μμκ° λ¨Όμ λμ΅λλ€.
- μν ν(Circular Queue): λ°°μ΄μ μ¬μ©νμ¬ ν¨μ¨μ μΌλ‘ 곡κ°μ μ¬μ¬μ©ν©λλ€.
- λ±(Deque): μμͺ½ λμμ μ½μ κ³Ό μμ κ° κ°λ₯ν νμ μΌλ°νλ ννμ λλ€.
- LinkedList:
- LinkedList ν΄λμ€λ Listμ Deque μΈν°νμ΄μ€λ₯Ό λͺ¨λ ꡬνν©λλ€.
- μ°κ²° 리μ€νΈ κΈ°λ°μΌλ‘, νμ λͺ¨λ κΈ°λ₯μ μ 곡ν©λλ€.
- λμ μΌλ‘ μμλ₯Ό μΆκ°νκ³ μ κ±°ν μ μμΌλ©°, μΆκ° λ° μ κ±° μμ μ΄ μ μκ° λ³΅μ‘λλ₯Ό κ°μ§λλ€.
- ArrayDeque:
- ArrayDequeλ μν λ°°μ΄μ μ¬μ©νμ¬ κ΅¬νλ λλΈ μλ ν(Deque)μ λλ€.
- νμ μ€νμ κΈ°λ₯μ λͺ¨λ μ 곡νλ©°, μ ν λ°°μ΄ κΈ°λ° νμ λΉν΄ κ³΅κ° ν¨μ¨μ±μ΄ λ λμ΅λλ€.
- μΆκ° λ° μ κ±° μμ μ΄ μ μκ° λ³΅μ‘λλ₯Ό κ°μ§λλ€.
- PriorityQueue:
- PriorityQueueλ μ°μ μμ νλ₯Ό ꡬνν©λλ€.
- μμλ€μ μμ° μμ λλ λΉκ΅μ(comparator)μ λ°λΌ μ λ ¬λ©λλ€.
- μμμ μΆκ°μ μ κ±°λ μ μκ° λ³΅μ‘λλ₯Ό κ°μ§λλ€.
- ConcurrentLinkedQueue:
- λ©ν°μ€λ λ νκ²½μμ μ¬μ©νκΈ° μν λΉμ°¨λ¨(non-blocking) μ°κ²° 리μ€νΈ κΈ°λ° νμ λλ€.
- λμμ±(concurrency)μ κ°νλ©°, λμ λμ μ κ·Όμμ μ±λ₯μ΄ λ°μ΄λ©λλ€.
- LinkedBlockingQueue:
- λ©ν°μ€λ λ νκ²½μμ μ¬μ©λλ μ°¨λ¨(blocking) μ°κ²° 리μ€νΈ κΈ°λ° νμ λλ€.
- μ€λ λ μμ (thread-safe)νλ©°, μΆκ° λ° μ κ±° μμ μ λΉ νλ κ°λ μ°¬ νμμ μ€λ λλ₯Ό μ°¨λ¨(λκΈ° μνλ‘ λ§λ¦)ν μ μμ΅λλ€.
μ°Έκ³ μλ£ : γμ½κ² λ°°μ°λ μλ£κ΅¬μ‘° with μλ°γ
'ποΈ μλ£κ΅¬μ‘°μ μκ³ λ¦¬μ¦ > μκ³ λ¦¬μ¦,μλ£κ΅¬μ‘°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ λ ¬] κ³ κΈ μ λ ¬ μκ³ λ¦¬μ¦(λ³ν©/ν΅/ν/μ ) (1) | 2023.11.21 |
---|---|
[μ λ ¬] κΈ°λ³Έ μ λ ¬ μκ³ λ¦¬μ¦(μ ν/λ²λΈ/μ½μ ) (1) | 2023.11.21 |
[ν] μ°μ μμ ν : ν (0) | 2023.11.21 |
[μ€ν] λ°°μ΄ κΈ°λ° μ€νκ³Ό μ°κ²° 리μ€νΈ κΈ°λ° μ€ν (0) | 2023.11.21 |
[리μ€νΈ] λ°°μ΄ λ¦¬μ€νΈμ μ°κ²° 리μ€νΈ (1) | 2023.11.21 |