summaryrefslogtreecommitdiff
path: root/ds
diff options
context:
space:
mode:
Diffstat (limited to 'ds')
-rw-r--r--ds/arraylist.go35
-rw-r--r--ds/integer.go78
2 files changed, 33 insertions, 80 deletions
diff --git a/ds/arraylist.go b/ds/arraylist.go
index 66490f3..5964b88 100644
--- a/ds/arraylist.go
+++ b/ds/arraylist.go
@@ -2,10 +2,41 @@ package ds
import (
"fmt"
+ "math/rand"
"strings"
)
-type ArrayList []Integer
+type ArrayList []int
+
+func NewRandomArrayList(length, max int) ArrayList {
+ a := make(ArrayList, length)
+ for i := 0; i < length; i++ {
+ if max > 0 {
+ a[i] = rand.Intn(max)
+ continue
+ }
+ a[i] = rand.Int()
+ }
+ return a
+}
+
+func NewAscendingArrayList(length int) ArrayList {
+ a := make(ArrayList, length)
+ for i := 0; i < length; i++ {
+ a[i] = i
+ }
+ return a
+}
+
+func NewDescendingArrayList(length int) ArrayList {
+ a := make(ArrayList, length)
+ j := length - 1
+ for i := 0; i < length; i++ {
+ a[i] = j
+ j--
+ }
+ return a
+}
func (a ArrayList) FirstN(n int) string {
var sb strings.Builder
@@ -29,7 +60,7 @@ func (a ArrayList) FirstN(n int) string {
func (a ArrayList) Sorted() bool {
for i := len(a) - 1; i > 0; i-- {
- if a[i].Lower(a[i-1]) {
+ if a[i] < a[i-1] {
return false
}
}
diff --git a/ds/integer.go b/ds/integer.go
deleted file mode 100644
index 1372624..0000000
--- a/ds/integer.go
+++ /dev/null
@@ -1,78 +0,0 @@
-package ds
-
-import (
- "math/rand"
-)
-
-type Integer int
-
-func RandomIntegers(length, max int) ArrayList {
- a := make(ArrayList, length)
- for i := 0; i < length; i++ {
- if max > 0 {
- a[i] = Integer(rand.Intn(max))
- continue
- }
- a[i] = Integer(rand.Int())
- }
- return a
-}
-
-func AscendingIntegers(length int) ArrayList {
- a := make(ArrayList, length)
- for i := 0; i < length; i++ {
- a[i] = Integer(i)
- }
- return a
-}
-
-func DescendingIntegers(length int) ArrayList {
- a := make(ArrayList, length)
- j := length
- for i := 0; i < length; i++ {
- a[i] = Integer(j)
- j--
- }
- return a
-}
-
-func (i Integer) Equal(j Integer) bool {
- return i == j
-}
-
-func (i Integer) Lower(j Integer) bool {
- return i < j
-}
-
-func (i Integer) LowerEqual(j Integer) bool {
- return i <= j
-}
-
-func (i Integer) Higher(j Integer) bool {
- return i > j
-}
-
-func (i Integer) HigherEqual(j Integer) bool {
- return i >= j
-}
-
-func (i Integer) Compare(j Integer) int {
- switch {
- case i < j:
- return -1
- case i > j:
- return 1
- }
- return 0
-}
-
-func (i Integer) CompareCB(j Integer, lowerCB, higherCB, equalsCB func()) {
- switch {
- case i < j:
- lowerCB()
- case i > j:
- higherCB()
- default:
- equalsCB()
- }
-}