본문 바로가기

Java

[Java] Queue 구현

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