Learning data structure and algorithm