본문 바로가기
Club/99클럽 코테 스터디 2기

99클럽 코테 스터디 17일차 TIL Deque 자료구조

by ʚ⇜❅🎕̈❄⇝ɞ 2024. 6. 5.
728x90
반응형

Deque 자료구조와 method

Deque 구조
Deque 구조

  • Deque(Double-Ended Queue)는 큐의 구조에 양쪽에서 데이터를 삽입 삭제 할 수 있는 자료구조이다.
  • Queue 의 선입선출 (FIFO: First In First Out) 구조와
  • Stack 의입선출 (LIFO: Last In First Out) 구조를 모두 포용한다.
  • 원하는 대로 Queue와 Stack의 동작을 모두 수행할 수 있다.
  • 값 삽입
    • addFirst(value): 맨 앞에 값을 삽입. 실패 시 Exception 발생
    • offerFirst(value): 맨 앞에 값을 삽입. 성공시 true, 실패 시 false 반환
    • addLast(value): 맨 뒤에 값을 삽입. 실패 시 Exception 발생
    • offerLast(value): 맨 에 값을 삽입. 성공시 true, 실패 시 false 반환
    • add(value): addLast()와 동일함.
    • offer(value): offerLast()와 동일함.
  • 값 삭제
    • removeFirst(): 맨 앞 값을 제거 후 반환. Empty Deque면 Exception 발생
    • pollFirst(): 맨 앞 값을 제거 후 반환.  Empty Deque면 null 반환
    • removeLast(): 맨 뒤 값을 제거 후 반환. 값이 존재하지 않으면 false 반환
    • pollLast(): 맨 뒤 값을 제거 후 반환.  Empty Deque면 null 반환
    • remove(): removeFirst()와 동일함.
    • poll(): pollFirst()와 동일함.
    • remove(value): 해당  값을 제거 후 반환. 값이 존재하지 않으면 false 반환
  • 값 조회
    • getFirst(): 맨 앞 값을 제거 하지 않고 반환. Empty Deque면 Exception 발생
    • peakFirst(): 맨 앞 값을 제거 하지 않고 반환. Empty Deque면 null 반환
    • getLast(): 맨 뒤 값을 제거 하지 않고 반환. Empty Deque면 Exception 발생
    • peakLast(): 맨  값을 제거 하지 않고 반환. Empty Deque면 null 반환
    • element(): getFirst()와 동일함.
    • peak(): peakFirst()와  동일함.
  • isEmpty(): Empty Deque면 true, 아니면 false 반환
  • size(): Deque의 크기(원소 개수) 반환
  • contains(value): Deque 내에 값이 존재하면 true, 아니면 false
  • removeFirstOccurrence(value): Deque에서 해당 값이 제일 첫번째로 존재하는 element 를 제거한다.
  • removeLastOccurrence(value): Deque에서 해당 값이 제일 마지막으로 존재하는 element 를 제거한다.
728x90

알게 된 점

  • 같은 기능의 method 라도 Exception을 발생하는 method와 false를 반환하는 method 가 있다.
  • 어떤 경우에 어떤 method를 써야 적합한지 알아봐야겠다.

다음에 학습할 것

  • Deque의 구현체들 (LinkedList, ArrayDeque 등) 알아보기
  • Deque 자료구조 직접 구현해 보기
반응형

Java에서 제공해 주는 class를 사용하는 것이 용이하지만, 내부구조를 이해하고 직접 구현해 보는 것이 도움이 많이 될 것 같다.

728x90
반응형

댓글