자바로 큐 만들어보기

Kim Dong Kyun·2023년 5월 4일
1

https://velog.io/@calaf/%EC%9E%90%EB%B0%94%EB%A1%9C-%EC%8A%A4%ED%83%9D-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EA%B8%B0

1탄에 이어서 큐도!

전체코드

private class Queue {

        private int[] array;
        private int front;
        private int rear;
        private int maxSize;

        public Queue(int size) {
            array = new int[size];
            front = 0;
            rear = -1;
            maxSize = 0;
        }

        public boolean isEmpty() {
            return (maxSize == 0);
        }

        public boolean isFull() {
            return (maxSize == array.length);
        }

        public void enqueue(int item) {
            if (isFull()) {
                throw new IllegalArgumentException("Queue is full.");
            }
            rear = (rear + 1) % array.length;
            array[rear] = item;
            maxSize++;
        }

        public int dequeue() {
            if (isEmpty()) {
                throw new IllegalArgumentException("Queue is empty.");
            }
            int item = array[front];
            front = (front + 1) % array.length;
            maxSize--;
            return item;
        }

        public void peek() {
            if (isEmpty()) {
                throw new IllegalArgumentException("Queue is empty.");
            }
            System.out.println(array[front] + " Peek!");
        }
    }

정리

  • 스택과는 다르게 front(0번째인덱스) 부터 빼는 식이다.

0개의 댓글