Data Structures and Algorithms - Amir Zeid (2019)