Practice implementations for common algorithms and datastructures