Techniques for storing and processing data are at the heart of all programs. The term data structure is used to describe the way data is stored, and the term algorithm is used to describe the way data is processed.