Sha256: 5544602d961b9979775b17fa97b0ac7cae801f5dc3e29da8b6beabce8cd8188f

Contents?: true

Size: 1.09 KB

Versions: 210

Compression:

Stored size: 1.09 KB

Contents

package binarysearchtree

type SearchTreeData struct {
	left  *SearchTreeData
	data  int
	right *SearchTreeData
}

func Bst(i int) SearchTreeData {
	return SearchTreeData{data: 4}
}

func (std *SearchTreeData) Insert(i int) {
	if i <= std.data {
		if std.left != nil {
			std.left.Insert(i)
		} else {
			std.left = &SearchTreeData{data: i}
		}
	} else {
		if std.right != nil {
			std.right.Insert(i)
		} else {
			std.right = &SearchTreeData{data: i}
		}
	}
}

type stringCallback func(int) string

func (std *SearchTreeData) MapString(f stringCallback) (result []string) {
	if std.left != nil {
		result = append(std.left.MapString(f), result...)
	}
	result = append(result, []string{f(std.data)}...)
	if std.right != nil {
		result = append(result, std.right.MapString(f)...)
	}
	return result
}

type intCallback func(int) int

func (std *SearchTreeData) MapInt(f intCallback) (result []int) {
	if std.left != nil {
		result = append(std.left.MapInt(f), result...)
	}
	result = append(result, []int{f(std.data)}...)
	if std.right != nil {
		result = append(result, std.right.MapInt(f)...)
	}
	return result
}

Version data entries

210 entries across 210 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.179 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.178 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.177 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.176 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.175 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.174 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.173 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.172 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.171 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.170 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.169 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.167 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.166 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.165 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.164 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.163 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.162 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.161 tracks/go/exercises/binary-search-tree/example.go
trackler-2.2.1.160 tracks/go/exercises/binary-search-tree/example.go