-
[Java]덱(Deque)Algorithm/자료구조 for Algorithm 2021. 2. 18. 22:08
*덱(Deque)
-> 덱이란 큐와 스택의 특성을 동시에 가질 수 있는 자료구조이다.
-> 두 가지 특성을 동시에 활용할 수 있기 때문에 더 다양하게 활용될 수 있다.
덱 자료구조 *Java의 덱
-> 덱 자료 구조는 기본적으로 Queue의 구조를 채용하고 있다. 따라서 일반 큐의 연산인 poll() 메서드와 offer() 메서드는 동일하게 사용할 수 있다.
-> 덱 자료 구조는 양 방향을 모두 head로 볼 수 있다. 따라서, 배열의 관점에서 인덱스가 0인 부분의 head는 일반 큐 메서드 이름에 Fisrt를 추가하여 구분하고, 마지막 인덱스 부분의 head는 Last를 추가하여 구분한다.
-> peek() 메서드도 마찬가지이다. 좌측 부분의 head를 확인하고 싶다면 peek() 메서드 혹은 peekFirst() 메서드를 사용하면 되고, 우측 부분의 head를 확인하고 싶다면 peekLast() 메서드를 사용하면 된다.
(참고 : docs.oracle.com/javase/7/docs/api/)
Java Platform SE 7
docs.oracle.com
import java.util.ArrayDeque; import java.util.Deque; /** * 조합 : n 개 중에서 r 개 선택 */ public class test { public static void main(String[] args) { Deque<Integer> dq = new ArrayDeque<Integer>(); // 일반 큐의 구조와 마찬가지로 1, 2, 3 투입. dq.offer(1); dq.offer(2); dq.offer(3); // 큐의 좌측에 100 투입. dq.offerFirst(100); // 큐의 우측에 200 투입(그냥 offer 연산은 사용해도 된다). dq.offerLast(200); // 큐의 우측 원소를 추출 dq.pollLast(); // 큐의 우측 원소를 확인 System.out.println(dq.peekLast()); // 큐의 전체 숫자를 차레로 확인 for(Integer num : dq) { System.out.print(num + " "); } } }
'Algorithm > 자료구조 for Algorithm' 카테고리의 다른 글
[Java]우선순위큐(PriorityQueue) (0) 2022.03.22 [Java]서로소 집합(Disjoint Set)(Union-Find)(Merge-Find Set) (0) 2021.04.15 [Java]해시맵(HashMap) (0) 2021.02.13 [Java]큐(Queue) (0) 2020.09.25 [Java]스택(Stack) (0) 2020.09.25