Preface¶
Introduction to Data Structures¶
Algorithm Analysis¶
Linked Lists¶
Recursion¶
- -1.1. Introduction
- -1.2. Writing a recursive function
- -1.3. Code Completion Practice Exercises
- -1.3.1. Introduction
- -1.3.2. Recursion Programming Exercise: Largest
- -1.3.3. Recursion Programming Exercise: Multiply
- -1.3.4. Recursion Programming Exercise: GCD
- -1.3.5. Recursion Programming Exercise: log
- -1.3.6. Recursion Programming Exercise: Cummulative Sum
- -1.3.7. Recursion Programming Exercise: Add odd values
- -1.3.8. Recursion Programming Exercise: Sum Of the Digits
- -1.3.9. Recursion Programming Exercise: Count Characters
- -1.4. Writing More Sophisticated Recursive Functions
- -1.5. Tracing Recursive Code
- -1.6. Tracing Practice Exercises
Stacks & Queues¶
Trees¶
- -1.1. Binary Trees Chapter Introduction
- -1.2. Binary Trees
- -1.3. Binary Tree Traversals
- -1.4. Implementing Tree Traversals
- -1.5. Binary Tree Node Implementations
- -1.6. Binary Tree Space Requirements
- -1.7. Binary Tree as a Recursive Data Structure
- -1.8. The Full Binary Tree Theorem
- -1.9. Binary Search Trees
- -1.10. Dictionary Implementation Using a BST
- -1.11. Binary Tree Chapter Summary
Heaps & Hash Tables¶
- -1.1. Heaps and Priority Queues
- -1.2. Array Implementation for Complete Binary Trees
- -1.3. Introduction
- -1.4. Hash Function Principles
- -1.5. Sample Hash Functions
- -1.6. Open Hashing
- -1.7. Bucket Hashing
- -1.8. Collision Resolution
- -1.9. Improved Collision Resolution
- -1.10. Analysis of Closed Hashing
- -1.11. Deletion
- -1.12. Hashing Chapter Summary Exercises