코딩테스트/자료구조

5. 덱(Deque)

초코chip 2024. 4. 12. 15:54

개념

  • 정의: 양쪽 끝에서 데이터의 삽입과 삭제가 가능한 선형 자료구조
  • 연산:
    • 앞쪽 삽입: d.offerFirst(v);
    • 뒤쪽 삽입: d.offerLast(v);
    • 앞쪽 조회: v = d.peekFirst();
    • 뒤쪽 조회: v = d.peekLast();
    • 앞쪽 삭제: d.pollFirst();
    • 뒤쪽 삭제: d.pollLast();
    • 비어있는지 확인: d.isEmpty();

사용방법

java.util의 Deque 인터페이스와 LinkedList 클래스 사용

선언

Deque<Integer> deque = new LinkedList<>();

앞쪽 삽입

  • 덱의 맨 앞에 값 삽입
deque.offerFirst(1); // 또는 deque.addFirst(1);

뒤쪽 삽입

  • 덱의 맨 뒤에 값 삽입
deque.offerLast(2); // 또는 deque.addLast(2);

앞쪽 조회

  • 덱의 맨 앞(front) 값을 조회
int front = deque.peekFirst();

뒤쪽 조회

  • 덱의 맨 뒤(back) 값을 조회
int back = deque.peekLast();

앞쪽 삭제

  • 덱의 맨 앞(front) 값을 삭제하고 그 값을 반환
deque.pollFirst(); // 또는 deque.removeFirst();

뒤쪽 삭제

  • 덱의 맨 뒤(back) 값을 삭제하고 그 값을 반환
deque.pollLast(); // 또는 deque.removeLast();

덱 비어있는지 확인

// 덱이 비어있다면 true 반환
deque.isEmpty();

'코딩테스트 > 자료구조' 카테고리의 다른 글

7. 그래프  (0) 2024.04.12
6. 우선순위 큐(PriorityQueue)  (0) 2024.04.12
4. 큐(Queue)  (0) 2024.04.12
3. 스택(Stack)  (0) 2024.04.12
2. Map & HashMap  (0) 2024.04.12