Java
[Java] Queue 구현
shs00925
2025. 2. 10. 18:42
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;
}
}
}