Syllabus - Data Structures
- Week 1 - Introduction
- Overview
- Objects
- Expressions, Operators, and Precedence
- Control Flow
- Functions
- Simple Input and Output
- Exception Handling
- Iterators and Generators
- Additional Conveniences
- Scopes and Namespaces
- Modules and the Import Statement
- Week 2 - Object-Oriented Programming
- Goals, Principles, and Patterns
- Software Development
- Class Definitions
- Inheritance
- Namespaces and Object-Orientation
- Shallow and Deep Copying
- Week 3 - Algorithm Analysis
- Experimental Studies
- The Seven Functions Used in This Book
- Asymptotic Analysis
- Simple Justification Techniques
- Week 4 - Recursion
- Analyzing Recursive Algorithms
- Recursion Run Amok
- Further Examples of Recursion
- Designing Recursive Algorithms
- Eliminating Tail Recursion
- Week 5 - Array-Based Sequences
- Sequence Types
- Low-Level Arrays
- Dynamic Arrays and Amortization
- Efficiency of Sequence Types
- Using Array-Based Sequences
- Multidimensional Data Sets
- Week 6 - Stacks, Queues, and Deques
- Stacks
- Queues
- Double-Ended Queues
- Week 7 - Linked Lists
- Singly Linked Lists
- Circularly Linked Lists
- Doubly Linked Lists
- The Positional List ADT
- Sorting a Positional List
- Case Study: Maintaining Access Frequencies
- Link-Based vs. Array-Based Sequences
- Week 8- Trees
- General Trees
- Binary Trees
- Implementing Trees
- Tree Traversal Algorithms
- Case Study: An Expression Tree
- Week 9 - The Priority Queue Abstract Data Type
- Implementing a Priority Queue
- Heaps
- Sorting with a Priority Queue
- Adaptable Priority Queues
- Week 10 - Maps, Hash Tables, and Skip Lists
- Maps and Dictionaries
- Hash Tables
- Sorted Maps
- Skip Lists
- Sets, Multisets, and Multimaps
- Week 11 - Search Trees
- Binary Search Trees
- Balanced Search Trees
- AVL Trees
- Splay Trees
- (2,4) Trees
- Red-Black Trees
- Week 12 - Sorting and Selection
- Why Study Sorting Algorithms?
- Merge-Sort
- Quick-Sort
- Studying Sorting through an Algorithmic Lens
- Comparing Sorting Algorithms
- Built-In Sorting Functions
- Selection
- Week 13 - Text Processing
- Abundance of Digitized Text
- Pattern-Matching Algorithms
- Dynamic Programming
- Text Compression and the Greedy Method
- Tries
- Week 14 - Graph Algorithms
- Graphs
- Data Structures for Graphs
- Graph Traversals
- Transitive Closure
- Shortest Paths
- Minimum Spanning Trees
- Week 15 - Memory Management and B-Trees
- Memory Management
- Memory Hierarchies and Caching
- External Searching and B-Trees
- External-Memory Sorting