소스코드
#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 |
---|
댓글