Loko
로코
Loko
전체 방문자
오늘
어제
  • 분류 전체보기
    • Book
      • Hard Skill
      • Soft Skill
      • Novel
      • Science
      • Economy
      • Self Help
    • Troubleshooting
      • in Works
      • in Projects
      • in Lectures
    • JVM
      • Java
      • Kotlin
      • Spring
      • JPA
    • JavaScript
      • Vanilla
      • React
      • Redux
      • Next
    • Algorithm
      • 기본적으로 알아야 할 것들
      • Java class library package
      • Sorting Algorithm
      • 꼭 기억해둘 유명 Algorithm
      • 유형별 풀이 template
    • Infrastructure
    • Web
      • 기초 공부
      • 서적 공부
      • Security
      • AWS

블로그 메뉴

  • 홈
  • GitHub
  • 기술 블로그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Loko

로코

Algorithm/Java class library package

Java에서 Queue 직접 구현해보기

2021. 7. 31. 17:31

Queue의 4가지 기능

  • add() : 맨 마지막에 데이터를 삽입
  • remove() : 맨 앞에서 데이터를 꺼냄
  • peek() : 맨 앞 데이터를 확인
  • isEmpty() : 큐에 데이터가 있는지 없는지 확인

 

코드로 구현해보기

import java.util.NoSuchElementException;

class Queue<T> {
    class Node<T> {
        private T data;
        private Node<T> next;

        public Node(T data) {
            this.data = data;
        }
    }

    private Node<T> first;
    private Node<T> last;

    public void add(T item) {
        Node<T> t = new Node<T>(item);

        if (last != null) {
            last.next = t;
        }
        last = t;
        if (first == null) {
            first = last;
        }
    }

    public T remove() {
        if (first == null) {
            throw new NoSuchElementException();
        }

        T data = first.data;
        first = first.next;

        if (first == null) {
            last = null;
        }
        return data;
    }

    public T peek() {
        if (first == null) {
            throw new NoSuchElementException();
        }
        return first.data;
    }

    public boolean isEmpty() {
        return first == null
    }
}

public class Test {
    public static void main (String[] args) {
        Queue<Integer> s = new Queue<Integer>();
        q.add(1);
        q.add(2);
        q.add(3);
        q.add(4);
        System.out.println(q.remove());
        System.out.println(q.remove());
        System.out.println(s.peek());
        System.out.println(q.remove());
        System.out.println(s.isEmpty());
        System.out.println(q.remove());
        System.out.println(s.isEmpty());
    }
}

/*
1
2
3
3
false
4
true
*/

※ 출처 : 엔지니어대한민국 - Queue 구현하기 in Java

저작자표시 (새창열림)

'Algorithm > Java class library package' 카테고리의 다른 글

Hash Table에 대해 알아보고 Java로 구현해보기  (0) 2021.09.03
Java의 ArrayList에 대해 알아보고 구현하기  (0) 2021.08.22
Java의 StringBuilder에 대해 알아보고 구현하기  (0) 2021.08.22
Java에서 Stack 직접 구현해보기  (0) 2021.07.31
    'Algorithm/Java class library package' 카테고리의 다른 글
    • Hash Table에 대해 알아보고 Java로 구현해보기
    • Java의 ArrayList에 대해 알아보고 구현하기
    • Java의 StringBuilder에 대해 알아보고 구현하기
    • Java에서 Stack 직접 구현해보기
    Loko
    Loko
    개발하면서 발전하고 싶은 소망이 담긴 블로그입니다.

    티스토리툴바