classic data structures and algorithms in scala (uses elementary language constructs)