diff --git a/datastructure/queue/arrayqueue.go b/datastructure/queue/arrayqueue.go index b4f4df7..d6d2c22 100644 --- a/datastructure/queue/arrayqueue.go +++ b/datastructure/queue/arrayqueue.go @@ -43,6 +43,11 @@ func (q *ArrayQueue[T]) IsEmpty() bool { return q.size == 0 } +// IsFull checks if queue is full or not +func (q *ArrayQueue[T]) IsFull() bool { + return q.size == q.capacity +} + // Front return front value of queue func (q *ArrayQueue[T]) Front() T { return q.items[0] diff --git a/datastructure/queue/arrayqueue_test.go b/datastructure/queue/arrayqueue_test.go index c3c461c..9ecc224 100644 --- a/datastructure/queue/arrayqueue_test.go +++ b/datastructure/queue/arrayqueue_test.go @@ -100,3 +100,14 @@ func TestArrayQueue_Clear(t *testing.T) { assert.Equal(true, queue.IsEmpty()) assert.Equal(0, queue.Size()) } + +func TestArrayQueue_IsFull(t *testing.T) { + assert := internal.NewAssert(t, "TestArrayQueue_IsFull") + + queue := NewArrayQueue[int](3) + queue.Enqueue(1) + queue.Enqueue(2) + queue.Enqueue(3) + + assert.Equal(true, queue.IsFull()) +}