728x90
Queue를 잘 모르신다면 여기를 클릭해주세요.
구현하는 Queue 기능
- offer(element) -> 뒤에 요소 추가
- poll() -> 앞에 요소 추출 후 반환
- peek() -> 앞에 요소 반환
- size() -> 크기 반환
- isEmpty() -> 비어있는지 true/false 반환
- clear() -> queue 비우기
Queue 구현하기(Linked List)
혹시 기능만 보고 구현하시고 싶으신 분을 위해 숨김으로 하겠습니다.
더보기
더보기
package util;
import java.util.NoSuchElementException;
public class Queue<T> {
Node<T> head;
Node<T> tail;
int size;
public Queue() {
size = 0;
}
public boolean offer(T element) {
Node<T> node = new Node<>(element);
if (isEmpty()) {
head = node;
tail = node;
} else {
tail.next = node;
tail = node;
}
size++;
return true;
}
public T poll() {
if (isEmpty()) {
throw new NoSuchElementException();
}
size--;
T result = head.element;
head = head.next;
if (head == null) {
tail = null;
}
return result;
}
public T peek() {
if (isEmpty()) {
throw new NoSuchElementException();
}
return head.element;
}
public int size() {
return size;
}
public boolean isEmpty() {
return size == 0;
}
public void clear() {
head = null;
tail = null;
size = 0;
}
private static class Node<T> {
T element;
Node<T> next;
public Node(T element) {
this.element = element;
}
}
}
728x90
'Java' 카테고리의 다른 글
[Java] BigInteger란? 사용법 (1) | 2025.03.24 |
---|---|
[Java] Deque 구현 (1) | 2025.02.04 |
[Java] Stack 구현하기 (1) | 2025.02.01 |
[Java] 실행 시간 측정 (2) | 2025.02.01 |
[Java] SinglyLinkedList 구현 (1) | 2025.01.27 |