Data Structure and algorithms from the Fundamentals