Chapter 1 Object-Oriented Programming Using C++
1.1 Abstract Data Types
1.2 Encapsulation
1.3 Inheritance
1.4 Pointers
1.5 Polymorphism
1.6 C++ and Object-Oriented Programming
1.7 The Standard Template Library
1.8 Vectors in the Standard Template Library
1.9 Data Structures and Object-Oriented Programming
1.10 Case Study: Random Access File
1.11 Exercises
1.12 Programming Assignments
Chapter 2 Complexity Analysis
2.1 Computational and Asymptotic Complexity
2.2 Big-O Notation
2.3 Properties of Big-O Notation
2.4 Ω and Θ Notations
2.5 Possible Problems
2.6 Examples of complexities
2.7 Finding Asymptotic Complexity: Examples
2.8 the Best, Average, and Worst Cases
2.9 Amortized Complexity
2.10 Exercises
Chapter 3 Llinked Lis+s
3.1 Singly linked Lists
3.2 Doubyly linked Lists
3.3 Circular Lists
3.4 Skip Lists
3.5 Self-Organizing Lists
3.6 Sparse Tables
3.7 Lists in the Standard Template Library
3.8 Deques in the Standard Template Library
3.9 Concluding Remarks
3.10 Case Study: A Library
3.11 Exercises
3.12 Programming Assignements
Chapter 4 Stacks and Queues
4.1 Stacks
4.2 Queues
4.3 Priority Queues
4.4 Stacks in the Standard Template Library
4.5 Queues in the Standard Template Library
4.6 Priority Queues in the Standard Template Library
4.7 Case Study: Exiting a Maze
4.8 Exercises
4.9 Programming Assignments
Chapter 5 Recursion
5.1 Recursive Definitions
5.2 Function Calls and REcursion Implementation
5.3 Anatomy of a Recursive Call
5.4 Tail Recursion
5.5 Nontail Recursion
5.6 Indirect recursion
5.7 Nested Recursion
5.8 Excessive Recursion
5.9 Backtracking
5.10 Concluding Remarks
5.11 Case Study: A Recursive Descent Interpreter
5.12 Exercises
5.13 Programming Assignments
Chapter 6 Binary Tress
6.1 Trees, Bionary Trees, and Binary Search Trees
6.2 Implementing Binary Trees
6.3 Searching a Binary Search TRee
6.4 Tree Traversal
6.5 Insertion
6.6 Deletion
6.7 Balancing a Tree
6.8 Self-Adjusting TYrees
6.9 Heaps
6.10 Polish Notation and Expression Trees
6.11 Case Study: Computing Word Frequencies
6.12 Exercises
6.13 Programming Assignments
Chapter 7 Multiway Trees
7.1 The Family of B-Trees
7.2 Tires
7.3 Concluding Remarks
7.4 Case Study: Spell Checker
7.5 Exercises
7.6 Programming Assignments
Chapter 8 Graphs
8.1 Graph REpresentation
8.2 Graph Traversals
8.3 Shortest Path
8.4 Cycle Detection
8.5 Spanning Trees
8.6 Connectivity
8.7 Topological Sort
8.8 Networks
8.9 Matching
8.10 Eulerian and hamiltonian Graphs
8.11 Case Study: Distinct Representatives
8.12 Exercises
8.13 Programming Assignments
Chapter 9 Sorting
9.1 Elementary Sorting Algorithmns
9.2 Decision Trees
9.3 Efficient Sorting Algorithms
9.4 Sorting in the Standard Template Library
9.5 Concluding Remarks
9.6 Case Stuidy: Adding Polynomials
9.7 Exercises
9.8 Programming Assignments
Chapter 10 Hashing
10.1 Hash Functions
10.2 Collision Resolution
10.3 Deletion
10.4 Perfect Hash Functions
10.5 hash Functions for Extendible Files
10.6 Case Study: Hasing with Buckets
10.7 Exercises
10.8 Programming Assignments
Chapter 11 Data Compression
11.1 Conditions for Data Compression
11.2 huffman Coding
11.3 Shannon-Fano Code
11.4 Run-Length Encoding
11.5 Ziv-Lempel Code
11.6 Case Study: Huffman Method with Run-Length Encoding
11.7 Exercises
11.8 Programming Assignments
Chapter 12 Memory Management
12.1 The Sequential-Fit Methods
12.2 The Nonsequential-Fit Methods
12.3 Garbage Collection
12.4 Concluding REmarks
12.5 Case Study: An In-Place Garbage Collector
12.6 Exercises
12.7 Programming Assignments
Appendix A Computing Big-O
Appendix B Algorithms in the Standard Template Library