When discussing data structures, it is only natural to start with collections. Collections are data structures that abstract away multiplicity. This means that whenever you have more than one item of a particular kind, and you want to run a number of operations on this data, you will need a proper abstraction—an abstraction that will establish the rules of the game you play when you encounter multiplicity.
It transpires that you will need to deal with abstraction of this nature in nearly every programming project. When you are dealing with strings, you frequently need to represent them as a collection of characters. Whenever you have a database application, and you have some queries in relation to this database, you need to present multiple results of these queries as collections. Whenever you are dealing with a text file, you may want to represent...