Data structures and algorithms in Python