𧨠μλ°μ .
Dequeμ 곡λΆνλ μ€ λμ μΌλ‘ λ³νλ frontμ rearκ° κ·Όλ³Έμ μΌλ‘ μ΄λ»κ² λμνλμ§ κΆκΈν΄μ‘μ΅λλ€.
μ΄κ²μ μκ²λλ©΄ μ ννκ² Dequeμ addFirst, addLast, removeFirst, removeLast μ frontμ rearκ° μ΄λμ μμΉνλμ§ μ μ μκ³ Dequeμ μ리λ₯Ό μ΄ν΄ ν μ μμ κ² κ°μμ΅λλ€.
1οΈβ£ Dequeμ frontμ rearμ μμΉλ λ³ν μ μλμ? π€
βDeque
β (Double Ended Queue)μμ βfront
β μ βrear
β μ μμΉλ λ³ν μ μμ΅λλ€.
βDeque
β λ μμͺ½ λμμ μ½μ
κ³Ό μμ κ° λͺ¨λ κ°λ₯ν μλ£κ΅¬μ‘°μ΄κΈ° λλ¬Έμ, βfront
β μ βrear
β μ μμΉλ λ°μ΄ν°κ° μ½μ
λκ±°λ μ κ±°λ λλ§λ€ λ³ν©λλ€.
2οΈβ£ Dequeμμμ frontμ rearμ λ³ν. π€©
1οΈβ£ μ½μ
μ°μ° (βaddFirst
β μ βaddLast
β)
-
β
addFirst
β : μμλ₯Ό λ±μ μμͺ½μ μ½μ ν©λλ€.-
β
front
β μμΉκ° λ°λλλ€.
-
β
-
β
addLast
β : μμλ₯Ό λ±μ λ€μͺ½μ μ½μ ν©λλ€.-
β
rear
β μμΉκ° λ°λλλ€.
-
β
2οΈβ£ μμ μ°μ° (βremoveFirst
β μ βremoveLast
β)
-
β
removeFirst
β : λ±μ μμͺ½μμ μμλ₯Ό μ κ±°ν©λλ€.-
β
front
β μμΉκ° λ°λλλ€.
-
β
-
β
removeLast
β : λ±μ λ€μͺ½μμ μμλ₯Ό μ κ±°ν©λλ€.-
β
rear
β μμΉκ° λ°λλλ€.
-
β
3οΈβ£ μμ μ½λ.
μλλ βDequeβ μ βLinkedListβ ꡬνμ μ¬μ©νμ¬ βfrontβ μ βrearβ μ λ³νλ₯Ό 보μ¬μ£Όλ μμ μ½λμ λλ€.
import java.util.Deque;
import java.util.LinkedList;
public class DequeExample {
public static void main(String[] args) {
Deque<String> deque = new LinkedList<>();
// μμλ₯Ό λ±μ μκ³Ό λ€μ μΆκ°
deque.addFirst("A"); // front: A
deque.addLast("B"); // rear: B
deque.addFirst("C"); // front: C, rear: B
deque.addLast("D"); // rear: D
System.out.println("Initial Deque: " + deque); // μΆλ ₯ : [C,A,B,D]
// μμͺ½μμ μμ μ κ±°
System.out.println("Removed from front: " + deque.removeFirst()); // μΆλ ₯: C
// λ€μͺ½μμ μμ μ κ±°
System.out.println("Removed from rear: " + deque.removeLast()); // μΆλ ₯: D
System.out.println("Deque after removals: " + deque); // μΆλ ₯: [A, B]
// λ±μ μμͺ½κ³Ό λ€μͺ½μμ μμ νμΈ
System.out.println("Front element: " + deque.getFirst()); // μΆλ ₯: A
System.out.println("Rear element: " + deque.getLast()); // μΆλ ₯: B
}
}
π μ€λͺ .
1οΈβ£ μ½μ μ°μ°.
-
βdeque.addFirst(βAβ)β : βAβλ₯Ό λ±μ μμ μ½μ ν©λλ€.
-
βdeque.addLast(βBβ)β : βBβλ₯Ό λ±μ λ€μ μ½μ ν©λλ€.
-
βdeque.addFirst(βCβ)β : βCβλ₯Ό λ±μ μμ μ½μ ν©λλ€.
-
βdeque.addLast(βDβ)β : βDβλ₯Ό λ±μ λ€μ μ½μ ν©λλ€.
μ΄ μ°μ°λ€μ βfrontβ μ βrearβ μ μμΉλ₯Ό μ λ°μ΄νΈν©λλ€.
2οΈβ£ μμ μ°μ°.
-
βdeque.removeFirst()β : λ±μ μμͺ½μμ βCβλ₯Ό μ κ±°ν©λλ€.
-
βdeque.removeLast()β : λ±μ λ€μͺ½μμ βDβλ₯Ό μ κ±°ν©λλ€.
μ΄ μ°μ°λ€μ βfrontβ μ βrearβ μ μμΉλ₯Ό λ€μ μ λ°μ΄νΈν©λλ€.
3οΈβ£ μμ νμΈ.
-
βdeque.getFirst()β : λ±μ μμͺ½ μμλ₯Ό νμΈν©λλ€.
-
βdeque.getLast()β : λ±μ λ€μͺ½ μμλ₯Ό νμΈν©λλ€.
μ΄ μμ μ½λλ βfrontβ μ βrearβ κ° λ°μ΄ν°μ μ½μ λ° μμ μ°μ°μ λ°λΌ μ΄λ»κ² λ³νλμ§ μ 보μ¬μ€λλ€.
βDequeβ λ μ΄μ²λΌ μμͺ½ λμμμ μ½μ κ³Ό μμ μ°μ°μ μ§μνλ―λ‘, βfrontβ μ βrearβ μ μμΉλ λμ μ λλ€.