Data Structure and algorithms