CSE/Data Structure
C++ 환형 큐
언제나 변함없이
2019. 11. 6. 16:17
반응형
#include <cstdio>
#include <cstdlib>
const int MAX_QUEUE_SIZE = 100;
class CircularQueue{
private:
int front;
int rear;
int data[MAX_QUEUE_SIZE];
public:
CircularQueue() {
front = rear = 0;
}
void enqueue(int element) {
if (!isFull()) {
rear = (rear + 1) % MAX_QUEUE_SIZE;
data[rear] = element;
}
}
void dequeue() {
if (!isEmpty()) {
front = (front + 1) % MAX_QUEUE_SIZE;
}
}
bool isFull() {
return (rear + 1) % MAX_QUEUE_SIZE == front;
}
bool isEmpty() {
return front == rear;
}
//첫 번째 요소 보여주기
int peek() {
if (!isEmpty()) {
return data[(front + 1) % MAX_QUEUE_SIZE];
}
}
void display() {
int max = front < rear ? rear : rear + MAX_QUEUE_SIZE;
for (int i = front + 1; i <= max; i++) {
printf("%2d / ", data[i % MAX_QUEUE_SIZE]);
}
}
};
void main() {
CircularQueue circularQ;
}
반응형