Data Structures and Algorithms in the Go programming language