티스토리 뷰

공부

[DataStructure] Queue?

승가비 2018. 9. 13. 18:04
728x90

[DataStructure] Queue?


// Queue
// enqueue, dequeue, isEmpty
// generic template class

#include <iostream>
using namespace std;

template <class T>
class Queue {
private:
T *queue;
int size;
int front, back;

public:
Queue(int size) {
this->queue = new T[size];
this->size = size;
this->front = this->back = 0;
}

void enqueue(T item) {
int pos = this->back++ % size;
this->queue[pos] = item;
}

T dequeue() {
int pos = this->front++ % size;
return this->queue[pos];
}

bool isEmpty() {
return this->front == this->back;
}

bool isFull() {
return this->front == (this->back+1) % this->size;
}
};

#define SIZE 1000000

int main() {

Queue<int> *q = new Queue<int>(SIZE);

q->enqueue(3);
q->enqueue(4);
q->enqueue(5);

cout << q->dequeue() << endl;
cout << q->dequeue() << endl;
cout << q->dequeue() << endl;

return 0;
}


728x90

'공부' 카테고리의 다른 글

[Rule] 보이스카우트 규칙  (0) 2018.09.24
[BFS & DFS] tomato  (0) 2018.09.16
[Ubuntu] Linux terminal process without kill after logout  (0) 2018.09.12
[Sort] QuickSort  (0) 2018.09.11
[DP] changeCoin?  (0) 2018.09.08
댓글