CS-212   Data Structures & Algorithms

A systematic study of algorithms and their application to data structures, including arrays, lists, trees, heaps, hash tables and graphs. Algorithms and data structures are analyzed in their use of both time and space, and the choice of data structure in problem solving is studied. Theoretical issues, such as optimality, best and worst-case performance and limitations of algorithms are studied, as well as implementation issues. Prerequisite: Computer Science 112 and Mathematics 156. (Mathematics 156 may be taken concurrently.)