Algorithm/문제풀이

[LeetCode#622] Design Circular Queue

gilbert9172 2024. 8. 4. 12:59

 Description


제목 Design Circular Queue
링크 https://leetcode.com/problems/design-circular-queue/description/
자료구조 선형 (배열)
시간복잡도 O(1)


이 번 문제는 배열을 사용해서 Circular-Queue(원형 큐)를 구현하는 문제이다.

 

 

 

❒ Solution


 

public class MyCircularQueue {
    int q[];
    int front = 0;
    int rear = -1;
    int len = 0;

    public boolean enQueue(int value) {
        if (!isFull()) {
            rear = (rear + 1) % q.length;
            q[rear] = value;
            len++;
            return true;
        } else {
            return false;
        }
    }

    public boolean deQueue() {
        if (!isEmpty()) {
            front = (front + 1) % q.length;
            len--;
            return true;
        } else {
            return false;
        }
    }

    public int Front() {
    	return isEmpty() ? -1 : q[front];
    }

    public int Rear() {
    	return isEmpty() ? -1 : q[rear];
    }

    public isFull() {
    	return len == q.length;
    }

    public isEmpty() {
    	return len == 0;
    }
}