Search: learning data structure and algorithms