A data structure is a way of storing data in a computer so that it can be used efficiently. Data structures is an important part of the equation; Programs = Algorithms + Data structures. Often a carefully chosen data structure will allow the most efficient algorithm to be used. A well-designed data structure allows a variety of critical operations to be performed, minimizing the use of execution time and memory space. This course covers some fundamental data structures— stacks, queues, linked lists, binary trees, heaps and graphs—which are required for programming the solutions to a wide variety of real-world and theoretical problems.