From 0ba60a2106edfab31bbd4bd6ad8f3439fec6209f Mon Sep 17 00:00:00 2001 From: cheoljun99 Date: Mon, 30 Mar 2026 23:09:46 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20queue=20tpp=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/queue/queue.tpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/include/queue/queue.tpp b/include/queue/queue.tpp index b7f341c..2a71b9f 100644 --- a/include/queue/queue.tpp +++ b/include/queue/queue.tpp @@ -18,19 +18,36 @@ void Queue::clear() { template void Queue::push(Data data) { + if (size() >= QUEUE_SIZE - 1) { + throw std::overflow_error("Queue is full"); + } + buffer[ep] = data; + ep = (ep + 1) % QUEUE_SIZE; } template Data Queue::pull() { - return buffer[sp]; + if (size() == 0) { + throw std::underflow_error("Queue is empty"); + } + Data data = buffer[sp]; + sp = (sp + 1) % QUEUE_SIZE; + return data; } template Data Queue::top() { + if (size() == 0) { + throw std::underflow_error("Queue is empty (top)"); + } return buffer[sp]; } template int Queue::size() { - return 0; + if (ep >= sp) { + return ep - sp; + } else { + return QUEUE_SIZE - sp + ep; + } } \ No newline at end of file