When we develop an algorithm, we usually need to manipulate some data. The data can be a single value, a collection of values, or other kinds. The way to store these data in the computer (memory) is called data structure. In this course, data structures will be studied in the context of abstract data types (ADT): a specification of data and set of operations on the data. We will also analyze the efficiency (in terms of time and space) of the different implementations of the ADT's.
| Meeting | Date | Topic | Readings | Handout/Scribe Notes | Homework/Exercise | Solution |
| 1 | 04/16/08 | Introduction, Review: Pointers, Structures, Functions, File I/O | Tutorial | Begonia, Magbanua | ||
| 2 | 04/18/08 | N-dimensional Arrays (Matrices and Searching) | Matrix, Search | |||
| 3 | 04/21/08 | Lists | Ch. 2 of [5], Ch. 2 of [1], Ch. 3.2 of [2] | List ADT | ||
| 4 | 04/23/08 | Queues, Stacks, Introduction to Algorithm Analysis | Ch. 3.3-3.4 of [2], Ch. 3-4 of [1], Ch. 2 of [5] | Stack ADT, Queue ADT, Homework 1 | ||
| 5 | 04/25/08 | Queues and Stacks(continued) | ||||
| 6 | 04/28/08 | (No class) | ||||
| 7 | 04/30/08 | Binary Trees, Traversals, and Binary Search Trees | BST, BST Application | |||
| 8 | 05/02/08 | Binary Trees, Traversals, and Binary Search Trees(continued) | ||||
| 9 | 05/05/08 | AVL Trees | AVL | |||
| 10 | 05/07/08 | Priority Queues and Heaps | Heap | |||
| 11 | 05/09/08 | Dictionaries and Hashing | Hashing | |||
| 12 | 05/12/08 | Graphs: Adjacency Matrix Representation and Adjacency List Representation | Graphs | |||
| 13 | 05/14/08 | Graph Traversals: Depth-First Search and Breadth-First Search | Graph Traversals | |||
| 14 | 05/16/08 | Graph Algorithms: Shortest Paths and Minimum Spanning Trees | Dijkstra's Algorithm | |||
| 15 | 05/19/07 | Laboratory Exam |
Students should avoid cheating and plagiarism. All programming exercises and
assignments will be done individually.
$Id: CMSC123-Summer-2007.html 878 2009-05-15 02:22:45Z jachermocilla $