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;
}
}