golanglabs

Log | Files | Refs | README | LICENSE

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:
Mgo.mod | 2+-
Msrc/dsa/queue.go | 14++++++++------
Msrc/main.go | 16++++++++--------
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