상세 컨텐츠

본문 제목

Stack, Queue, Deque

Java is Coffee

by 10002s 2023. 10. 26. 23:39

본문

Stack (스택)

스택은 후입선출(Last-In-First-Out, LIFO) 방식으로 데이터를 저장하고 접근합니다.

가장 최근에 추가된 요소가 가장 먼저 제거됩니다.

스택은 주로 함수 호출 스택, 뒤로가기 버튼의 동작 및 괄호 일치 검사 등에 사용됩니다.

메서드명 Type 설명
push(E item) boolean  스택의 맨 위에 요소를 추가합니다.
pop() E 스택의 맨 위 요소를 제거하고 반환합니다.
peek() E 스택의 맨 위 요소를 반환하지만 제거하지는 않습니다.
empty() boolean  스택이 비어있는지 여부를 확인합니다.


Queue (큐)

큐는 선입선출(First-In-First-Out, FIFO) 방식으로 데이터를 저장하고 접근합니다.

가장 먼저 추가된 요소가 가장 먼저 제거됩니다.

큐는 주로 작업 대기열, 자원 공유 및 탐색 알고리즘에서 사용됩니다.

메서드명 Type 설명
add(E e) 또는 offer(E e) boolean  큐의 끝에 요소를 추가합니다.
remove() E 큐의 처음 요소를 제거하고 반환합니다.
poll() E 큐의 처음 요소를 제거하고 반환하며, 큐가 비어있을 경우 null을 반환합니다.
element() E 큐의 처음 요소를 반환하지만 제거하지는 않습니다.
peek() E 큐의 처음 요소를 반환하지만 제거하지는 않으며, 큐가 비어있을 경우 null을 반환합니다.


Stack은 일반적으로 LinkedList나 ArrayDeque 클래스로 구현됩니다. 

Queue는 LinkedList, ArrayDeque, 또는 PriorityQueue 클래스로 구현할 수 있습니다.

 

Deque(디큐)

Queue 의 변형으로 각각의 끝에서 입력과 출력이 각각 이루어지는 일반 Queue 와는 달리 양쪽 끝 모두가 입력과 출력을 수행할 수 있도록 구현되어있다. 

Deque 의 조상은 Queue 이며, 구현체로는 ArrayDeque 와 LinkedList 등이 있다.

  Head Tail
  throws exception special value throws exception special value
insert addFirst(e) offerFirst(e) addLast(e) offerLast(e)
remove removeFirst() pollFirst() removeLast() pollLast()
examine getFirst() peekFirst() getLast() peekLast()

 

반응형

'Java is Coffee' 카테고리의 다른 글

Collection/Map  (0) 2023.10.28
Iterator/Iteratable  (0) 2023.10.28

관련글 더보기