☰
Data Structures and Algorithms using Python
Copyright © 2023 by Rance Necaise
Table Of Contents
Data Structures and Algorithms using Python
Front Page
Copyright
Preface
►
Chapter 1. Abstract Data Types
1.1 Introduction
1.2 Abstractions
1.3 Abstract Data Types
1.4 The Time ADT
1.5 Implementing An ADT
1.6 Representing a Time Value
1.7 The Line Segment ADT
1.8 Implementing the Line Segment ADT
1.9 Preconditions and Postconditions
1.10 Multiple Implementations
1.11 Application: Student Records
Chapter Exercises
►
Chapter 2. Data Structures
2.1 Bags
2.2 Selecting a Data Structure
2.3 Implementing a Container
2.4 Iterators
2.5 The Polygon ADT
2.6 Maintaining Ordered Data
2.7 Maps
2.8 Map Operations
2.8 Organizing Related Data
2.9 Map: Single-List Implementation
2.10 Application: Histograms
Chapter Exercises
►
Chapter 3. Arrays and Vectors
3.1 The Array Structure
3.2 Example Uses of Arrays
3.3 Why Study Arrays
3.4 Vectors
3.5 Designing an Expandable Container
3.6 Implementing the Vector
Chapter Exercises
►
Chapter 4. Multi-Dimensional Arrays
4.1 Two-Dimensional Arrays
4.2 Working With 2-D Arrays
4.3 Implementing 2-D Arrays
4.4 Arrays of Higher Dimensions
4.5 Data Organization
4.6 Implementing the MultiArray ADT
4.7 The Matrix ADT
4.8 Matrix Operations
4.9 Implementing the Matrix
4.10 Application: The Game of Life
Chapter Exercises
►
Chapter 5. Algorithm Analysis
5.1 Complexity Analysis
5.2 Big-O Notation
5.3 Evaluating Python Code
5.4 Evaluating the Python List
5.5 Amortized Cost
5.6 Sets
5.7 Set Operations
5.8 Implementing the Set
5.9 Evaluating the Set Implementation
5.10 Application: The Sparse Matrix
Chapter Exercises
►
Chapter 6. Searching and Sorting
6.1 Searching
6.2 Linear Search
6.3 Binary Search
6.4 Sorting
6.5 The Bubble Sort
6.6 The Selection Sort
6.7 The Insertion Sort
6.8 Maintaining a Sorted List
6.9 Merging Sorted Lists
6.10 The Set ADT Revisited
6.11 Improved Set Implementation
Chapter Exercises
▼
Chapter 7. Linked Structures
7.1 Objects and References
7.2 Linked Structures
7.3 Singly Linked Lists
7.4 Prepending Nodes to a Linked List
7.5 Removing Nodes from a Linked List
7.6 Revisiting The Bag ADT
7.7 Linked List Iterators
7.8 Using a Tail Reference
7.9 The Sorted Linked List
7.10 The Sparse Matrix Revisited
7.11 Application: Polynomials
Chapter Exercises
►
Chapter 8. Queues
8.1 The Queue ADT
8.2 Queue Implementation
8.3 Circular Array Implementation
8.4 Priority Queues
8.5 Unbounded Priority Queue
8.6 Bounded Priority Queue
8.7 Application: Computer Simulations
8.8 Simulation Implementation
Chapter Exercises
►
Chapter 9. Stacks
►
Chapter 10. Advanced Linked Lists
►
Chapter 11. Hash Tables
►
Chapter 12. Recursion
►
Chapter 13. Advanced Sorting
►
Chapter 14. Binary Trees
►
Chapter 15. Search Trees
Copyright © 2023
by Rance Necaise
Copyright © 2023
by Rance Necaise
7.10 The Sparse Matrix Revisited
Chapter 7. Linked Structures
Chapter Exercises
7.11 Application: Polynomials
7.10 The Sparse Matrix Revisited
Chapter 7. Linked Structures
Chapter Exercises
Page last modified on August 25, 2023, at 07:35 PM