Learning data structure and algorithms