νλ? μ½κ² 보면 λκΈ°μ€μ΄λ€
μ°λ¦¬κ° νν μ€μ μ€ λ μ¨ μμλλ‘ μ°¨λ‘λ‘ μ μ₯νλ€.
λ¨Όμ λ€μ΄κ° κ²μ΄ λ¨Όμ λμ¨λ€.
=> μ μ μ μΆ(FIFO)
νμ μλΆλΆ frontμμλ μμ μ°μ°λ§ μννκ³
νμ λ·λΆλΆ rearμμλ μ½μ μ°μ°λ§ μννλ€.
μ°¨κ·Όμ°¨κ·Ό νμ μμ보기
μ½μ (5) - μ½μ (2) - μ½μ (3) - μ½μ (7) - μμ () - μ½μ (1) - μ½μ (4) - μμ ()μ κ³Όμ μ μνν΄ λ³΄μ.
μ½μ (5)
5
μ½μ (2)
5 2
μ½μ (3)
5 2 3
μ½μ (7)
5 2 3 7
μμ ()
2 3 7
μ½μ (1)
2 3 7 1
μ½μ (4)
2 3 7 1 4
μμ ()
3 7 1 4
=> μ½μ μ ν΅ν΄ λ°μ΄ν°λ₯Ό μ°¨λ‘λλ‘ μκ³ μμ λ₯Ό ν΅ν΄ λ€μ΄μ¨ μμλλ‘ λ°μ΄ν°λ₯Ό λ΄λ³΄λΈλ€.
μ½λλ‘ κ΅¬ν
Queue<Integer> q = new LinkedList<>();
// μ½μ
(5) - μ½μ
(2) - μ½μ
(3) - μ½μ
(7) - μμ () - μ½μ
(1) - μ½μ
(4) - μμ ()
q.offer(5);
q.offer(2);
q.offer(3);
q.offer(7);
q.poll();
q.offer(1);
q.offer(4);
q.poll();
while (!q.isEmpty()) {
System.out.print(q.poll() + " ");
}
νμ ν¨κ» μ°μ΄λ ν¨μλ€
μμ μΆκ°
- q.add()
boolean add(E e);
- q.offer()
boolean offer(E e);
<곡ν΅μ >
νμ 맨 λ€μ κ°μ μΆκ°νκ³ μ±κ³΅ μ trueλ₯Ό λ°ννλ€.
<μ°¨μ΄μ >
νμ μ©λ μ ν λλ¬Έμ λ μΆκ°ν μ μλ κ²½μ°
q.add(): IllegalStateException λ°μ
q.offer(): false λ°ν
μμ μμ
- q.remove()
E remove();
- q.poll()
E poll();
<곡ν΅μ >
νμ 맨 μ μμλ₯Ό μμ νκ³ μ±κ³΅ μ ν΄λΉ κ°μ λ°ννλ€.
<μ°¨μ΄μ >
νκ° λΉμ΄μλ κ²½μ°
q.remove(): NoSuchElementException λ°μ
q.poll(): null λ°ν
+) ν λΉμ°κΈ°
- q.clear()
void clear();
맨 μ μμ νμΈ
- q.element()
E element();
- q.peek()
E peek();
<곡ν΅μ >
νμ 맨 μ μμ κ°μ λ°ννλ€.
<μ°¨μ΄μ >
νκ° λΉμ΄μλ κ²½μ°
q.element(): NoSuchElementException λ°μ
q.peek(): null λ°ν
πμ 리
add(), remove(), element()μ offer(). poll(), peek()μ μ°¨μ΄λ
λ¬Έμ μν©μμ Exceptionμ λ°μμν€λμ§ false νΉμ nullμ λ°νμν€λ μ§μ μ°¨μ΄μ΄λ€.
Reference
μ΄κ²μ΄ μ½λ© ν μ€νΈλ€ - λλλΉ
'π¦ Data Structure' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μλ£κ΅¬μ‘°] μ€ν(Stack) (Java) (0) | 2023.03.08 |
---|
λκΈ