golanglabs

Log | Files | Refs | README | LICENSE

commit f662c42f968d10c7b5f484ed2c71133f420663e1
parent 0ce18fa30d90d6a4902d6f2b7a13c4417c0e5173
Author: William Lindholm <william_lindholm@outlook.com>
Date:   Sat,  6 Apr 2024 17:51:58 +0200

Implemented queue data structure.

Diffstat:
Asrc/dsa/queue.go | 31+++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+), 0 deletions(-)

diff --git a/src/dsa/queue.go b/src/dsa/queue.go @@ -0,0 +1,31 @@ +package dsa + +type Queue struct { + items []int +} + +func (q *Queue) Enqueue(item int) { + q.items = append(q.items, item) +} + +func (q *Queue) EnqueueSlice(items []int) { + q.items = append(q.items, items...) +} + +func (q *Queue) Dequeue() (item int, flag bool) { + if q.IsEmpty() { + return -1, false + } else { + head := q.items[0] + q.items = q.items[1:] + return head, true + } +} + +func (q *Queue) IsEmpty() bool { + return q.Size() == 0 +} + +func (q *Queue) Size() int { + return len(q.items) +}