코딩테스트/자료구조
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();