Data structures and algorithms review