commit bcebc6e5ae42c56de40a0e42cad5c47d420733d0
parent f662c42f968d10c7b5f484ed2c71133f420663e1
Author: William Lindholm <william_lindholm@outlook.com>
Date: Sat, 6 Apr 2024 23:50:28 +0200
Implemented tree strucuture with bfs insert.
Diffstat:
3 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/go.mod b/go.mod
@@ -4,6 +4,6 @@ go 1.18
require (
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c // indirect
- rsc.io/quote v1.5.2 // indirect
+ rsc.io/quote v1.5.2 // direct
rsc.io/sampler v1.3.0 // indirect
)
diff --git a/src/dsa/queue.go b/src/dsa/queue.go
@@ -1,20 +1,22 @@
package dsa
type Queue struct {
- items []int
+ items []interface{}
}
-func (q *Queue) Enqueue(item int) {
+func (q *Queue) Enqueue(item interface{}) {
q.items = append(q.items, item)
}
-func (q *Queue) EnqueueSlice(items []int) {
- q.items = append(q.items, items...)
+func (q *Queue) EnqueueSlice(items []interface{}) {
+ for _, item := range items {
+ q.Enqueue(item)
+ }
}
-func (q *Queue) Dequeue() (item int, flag bool) {
+func (q *Queue) Dequeue() (item interface{}, flag bool) {
if q.IsEmpty() {
- return -1, false
+ return nil, false
} else {
head := q.items[0]
q.items = q.items[1:]
diff --git a/src/main.go b/src/main.go
@@ -3,20 +3,20 @@ package main
import (
"bytes"
"fmt"
-
"github.com/LindholmLabs/golanglabs/src/dsa"
)
func main() {
- slice := []int{9, 8, 7, 6, 5, 4, 3, 2, 1, 0}
- PrintArr(slice)
- slice = dsa.MergeSort(slice)
- PrintArr(slice)
- slice = dsa.FisherYates(slice)
- PrintArr(slice)
+
+ var tree dsa.Tree
+
+ for i := 0; i < 10; i++ {
+ tree.Insert(i)
+ }
+ fmt.Println("constructed tree, view it using the debugger.")
}
-// print an []int array
+// PrintArr print an []int array
func PrintArr(v []int) {
var buffer bytes.Buffer