[자료구조] Deque(덱)

민경·2024년 6월 30일

❓ Deque이란

양쪽 끝에서 삽입과 삭제가 가능한 자료 구조

  • 스택의 기능을 모두 포함
  • FIFO(First-In-First-Out), LIFO(Last-In-First-Out) 모두 구현 가능
  • 삽입과 삭제 시 O(1)의 효율적인 시간 복잡도

☕️ 자바의 Deque (참고)

덱의 맨 앞에 요소 추가

  • addFirst(E e)
  • offerFirst(E e)

덱의 맨 뒤에 요소 추가

  • add(E e)
  • addLast(E e)
  • offerLast(E e)

💡 offer()add()의 차이
offer(): 삽입 성공 여부를 반환함 (true 또는 false)
add(): 삽입 실패 시 IllegalStateException를 발생시킴

덱에서 맨 앞 요소 삭제 후 반환

  • remove()
  • removeFirst()
  • poll()
  • pollFirst()

덱에서 맨 뒤 요소 삭제 후 반환

  • removeLast()
  • pollLast()

덱에서 특정 요소 삭제 후 반환

  • remove(E e)

💡 remove()poll()의 차이
remove(): 삭제 실패 시 NoSuchElementException
poll(): 삭제 요소가 없으면 null 반환

덱에서 맨 앞 값 얻기

  • peek()
  • peekFirst()

덱에서 맨 뒤 값 얻기

  • peekLast()

덱 크기

  • size()
profile
강해져야지

0개의 댓글