Preface¶
Module 1: Introduction to Data Structures¶
Module 2: Linked Lists¶
Module 3: Recursion¶
- 3.1. Introduction
- 3.2. Writing a recursive function
- 3.3. Code Completion Practice Exercises
- 3.3.1. Introduction
- 3.3.2. Recursion Programming Exercise: Largest
- 3.3.3. Recursion Programming Exercise: Multiply
- 3.3.4. Recursion Programming Exercise: GCD
- 3.3.5. Recursion Programming Exercise: log
- 3.3.6. Recursion Programming Exercise: Cummulative Sum
- 3.3.7. Recursion Programming Exercise: Add odd values
- 3.3.8. Recursion Programming Exercise: Sum Of the Digits
- 3.3.9. Recursion Programming Exercise: Count Characters
- 3.4. Writing More Sophisticated Recursive Functions
- 3.5. Tracing Recursive Code
- 3.6. Tracing Practice Exercises
Module 4: Algorithm Analysis¶
Module 5: Stacks & Queues¶
Module 6: Trees¶
- 6.1. Binary Trees Chapter Introduction
- 6.2. Binary Trees
- 6.3. Binary Tree Traversals
- 6.4. Implementing Tree Traversals
- 6.5. Binary Tree Node Implementations
- 6.6. Binary Tree Space Requirements
- 6.7. Binary Tree as a Recursive Data Structure
- 6.8. The Full Binary Tree Theorem
- 6.9. Binary Search Trees
- 6.10. Dictionary Implementation Using a BST
- 6.11. Binary Tree Chapter Summary
Module 7: Heaps & Hash Tables¶
- 7.1. Heaps and Priority Queues
- 7.2. Array Implementation for Complete Binary Trees
- 7.3. Introduction
- 7.4. Hash Function Principles
- 7.5. Sample Hash Functions
- 7.6. Open Hashing
- 7.7. Bucket Hashing
- 7.8. Collision Resolution
- 7.9. Improved Collision Resolution
- 7.10. Analysis of Closed Hashing
- 7.11. Deletion
- 7.12. Hashing Chapter Summary Exercises