Data Structures and Algorithm Analysis (CS340) [NIU]
Course Description
The application of analysis and design techniques to non-numeric algorithms on data structures. The utilization of algorithmic analysis and design criteria in the selection of methods for data manipulation. This course will continue to hone your skills as a developer and strengthen your understanding of C++ as it applies to data structures.
Course Material
- N. Dale, C. Weems and T. Richards, C++ Plus Data Structures, Jones and Barlett Learning, 2016
Material Covered
- Standard Template Library
- Containers
- Sequence containers: string, vector, stack, queue, deque, list
- Associative containers: set, multiset, map, multimap
- Iterators
- Algorithms
- Non-modifying sequence operations
- Modifying sequence operations
- Sorting
- Containers
- Binary Trees
- Trees, Binary Trees, and Binary Search Trees
- Implementing Binary Trees
- Insertion and Deletion
- Balancing a Tree – AVL Trees
- Heaps
- Heaps as Priority Queues
- Organizing Arrays as Heaps
- B-Trees
- Hashing
- Hash Functions
- Collision Resolution
- Deletion
- Graphs
- Graph Representation
- Graph Traversals
- Shortest Paths
- Cycle Detection
- Spanning Trees
Grading
- Assignments 25%
- Quizzes 12.5%
- Exam 1 12.5%
- Exam 2 12.5%
- Exam 3 12.5%
- Exam 4 (Final Exam) 25%