| Introduction | I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships. - Linus Torvalds One might have learned all the fundamental concepts of a programming language and might be really experienced as well. But does that make that person an efficient programmer? Not necessarily. One must have a proper understanding of Data Structures and Algorithms to be an efficient programmer. Now, people might say why study data structures and algorithms, and why waste time making programs efficient when computers are getting faster every year? The reason is, hardware upgrade merely adds on to the efficiency as the problem complexity increases(That appears to be some fancy jibberish, but hold on for now. You will learn more about it in Chapter 6).

To operate on any datawe need to follow three m…