소스코드
#include <cstdio>
template<class T> class Queue {
public:
int head;
int tail;
int size;
T* value;
Queue(int sz) {
size = sz;
head = tail = 0;
value = new T[size+1];
}
~Queue() {
delete[] value;
}
void enqueue(T val) {
if (!isFull()) {
value[tail] = val;
tail = (tail + 1) % size;
}
else {
puts("quque is full");
}
}
T dequeue() {
if (!isEmpty()) {
T val = value[head];
head = (head+1) % size;
return val;
}
else {
puts("queue is empty");
return -1;
}
}
bool isFull() {
if ((tail + 1) % size == head) return true;
return false;
}
bool isEmpty() {
if (head == tail) return true;
return false;
}
};
int main()
{
Queue<int> q(3);
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
q.enqueue(4);
printf("%d\n", q.dequeue());
printf("%d\n", q.dequeue());
printf("%d\n", q.dequeue());
printf("%d\n", q.dequeue());
}
공부한 것을 정리하기 위한 기록입니다.
틀린 부분이 있다면 부드럽게 알려주세요.
'Data Structure' 카테고리의 다른 글
| [Data Structure] Stack (0) | 2020.10.24 |
|---|
댓글