Contents: CS2
From
This is an online, interactive text for exploring the concepts and topics normally taught in the ACM CS2 course. This online text as of Spring 2009 does have quite a bit of content, but is currently under development and certainly not close to complete.
Contents |
Data Structures and Abstract Data Types
A data structure is a means of organizing data in a computer’s memory to try to optimize either the memory needed or the time to access the data. This brings up the classic trade-off in Computer Science: the trade-off between Time and Space. In most situations today, it seems that we are primarily interested in minimizing the Time aspect. But, given smaller and smaller devices that increasingly do more (think of the evolution of the cell phone), minimizing the Space aspect can be important also.
There is sometimes a difference made between a data structure and an abstract data type (ADT). An ADT describes the public interface of a data structure: the type of data and the valid operations on the data. An ADT, however, does not consider an implementation, and this is the essential difference.
Introduction to Computability and Complexity
Algorithms
Preliminaries of Data Organization
- Memory Allocation
- Primitive and Composite Structures
- Concept of an Element (Node)
- Abstract Data Types
ADTs and Data Structures
Linear Structures
Trees
Graphs
- Overview of Graph Abstract Data Types
- Representing Graphs
- Variations of Graph ADTs
- Common Graph Algorithms
Unordered Collections
- Overview of Unordered Collection Abstract Data Types
- Sets and MultiSets (Bags)
- Maps and Dictionaries
- Hash Tables
CS2: Data Structures
Theory of Computation - ADT Preliminaries
Linear ADTs - Tree ADTs - Graph ADTs - Unordered Collection ADTs