한 걸음 두 걸음

C++ 환형 큐 본문

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

반응형

'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