Data Structures and algorithms