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:
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)
+}