한 걸음 두 걸음
C++ 환형 큐 본문
반응형
#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;
}
반응형
'CSE > Data Structure' 카테고리의 다른 글
C++ 원형 덱 (0) | 2019.11.06 |
---|---|
C++ 선형 큐 (0) | 2019.11.06 |
C++ 스택 (0) | 2019.11.06 |
자료구조 맵 ] Map / Collection (0) | 2019.03.27 |
자료구조 정리 (0) | 2019.01.26 |