Note: Supplemental materials are not guaranteed with Rental or Used book purchases.
Purchase Benefits
What is included with this book?
Abstract Data Types 1 | |
Introduction | p. 1 |
Abstractions | p. 2 |
Abstract Data Types | p. 4 |
Data Structures | p. 5 |
The Date ADT | p. 6 |
Preconditions and Postconditions | p. 8 |
Using the ADT | p. 8 |
Implementing the ADT | p. 8 |
The Bag ADT | p. 14 |
Using the ADT | p. 15 |
Selecting a Data Structure | p. 16 |
The Class Definition | p. 18 |
Iterators | p. 19 |
The Set ADT | p. 22 |
Using the ADT | p. 24 |
Implementing the ADT | p. 25 |
The Map ADT | p. 28 |
Defining the ADT | p. 29 |
Implementing the Map ADT | p. 30 |
Alternate Implementation | p. 33 |
Application: Histograms | p. 35 |
Building a Histogram | p. 37 |
Implementing the Histogram ADT | p. 37 |
Programming Problems | p. 40 |
Arrays and Vectors 43 | |
The Array Structure | p. 43 |
Simulating an Array | p. 44 |
The Array ADT | p. 45 |
Implementing the ADT | p. 46 |
The Python List (Vector) | p. 47 |
MultiâÇôDimensional Arrays | p. 54 |
The MultiArray ADT | p. 54 |
Data Organization | p. 55 |
Variable Length Arguments | p. 59 |
MultiArray Implementation | p. 60 |
The Matrix ADT | p. 64 |
Matrix Operations | p. 65 |
Implementing the ADT | p. 67 |
Application: The Game of Life | p. 69 |
Rules of the Game | p. 70 |
Designing a Solution | p. 72 |
ADT Implementation | p. 74 |
Exercises | p. 77 |
Programming Problems | p. 78 |
Algorithm Analysis 81 | |
Complexity Analysis | p. 82 |
BigâÇôO Notation | p. 83 |
Classes of Algorithms | p. 87 |
Empirical Analysis | p. 88 |
Evaluating ADT Implementations | p. 88 |
Evaluating the Python List | p. 89 |
Evaluating the Set ADT | p. 91 |
Searching | p. 92 |
Linear Search | p. 92 |
Binary Search | p. 95 |
Working with Ordered Lists | p. 99 |
Building An Ordered List | p. 99 |
Merging Ordered Lists | p. 100 |
The Set ADT Revisited | p. 106 |
Application: The Sparse Matrix | p. 112 |
Implementation | p. 112 |
Analysis | p. 116 |
Exercises | p. 118 |
Programming Problems | p. 120 |
The Linked List 123 | |
A Linked Structure | p. 124 |
The SinglyâÇôLinked List | p. 124 |
Basic Operations | p. 124 |
Evaluating the Linked List | p. 124 |
The Bag ADT Revisited | p. 124 |
Implementation Details | p. 124 |
Linked List Iterator | p. 124 |
Using a Tail Pointer | p. 124 |
The Ordered Linked List | p. 124 |
The Sparse Matrix Revisited | p. 124 |
The New Implementation | p. 124 |
Comparing Implementations | p. 124 |
Application: Polynomials | p. 124 |
Polynomial Operations | p. 124 |
The Polynomial ADT | p. 124 |
ADT Implementation | p. 124 |
Exercises | p. 124 |
Programming Problems | p. 124 |
Advanced Linked Lists 125 | |
DoublyâÇôLinked List | p. 126 |
Organization | p. 126 |
List Operations | p. 126 |
Circular Linked List | p. 126 |
Organization | p. 126 |
List Operations | p. 126 |
MultiâÇôLinked Lists | p. 126 |
Multiple Chains | p. 126 |
The Sparse Matrix | p. 126 |
Complex Iterators | p. 126 |
Application: Text Editor | p. 126 |
Typical Editor Operations | p. 126 |
The Edit Buffer ADT | p. 126 |
Implementing the ADT | p. 126 |
Exercises | p. 126 |
Programming Problems | p. 126 |
Stacks 127 | |
The Stack ADT | p. 128 |
Implementing the Stack | p. 128 |
Vector Based | p. 128 |
Linked List Version | p. 128 |
Stack Applications | p. 128 |
Balanced Delimiters | p. 128 |
Evaluating Postfix Expressions | p. 128 |
Application: Solving a Maze | p. 128 |
Backtracking | p. 128 |
Designing a Solution | p. 128 |
The Maze ADT | p. 128 |
ADT Implementation | p. 128 |
Exercises | p. 128 |
Programming Problems | p. 128 |
Queues 129 | |
The Queue ADT | p. 129 |
Implementing the Queue | p. 129 |
Vector Based | p. 129 |
Circular Array | p. 129 |
Linked List Version | p. 129 |
The Priority Queue | p. 129 |
Application: Computer Simulations | p. 129 |
Airline Ticket Counter | p. 129 |
Class Specifications | p. 129 |
Exercises | p. 129 |
Programming Problems | p. 129 |
Hash Tables 131 | |
Introduction | p. 131 |
Hash Functions | p. 131 |
Open Addressing | p. 131 |
Linear Probing | p. 131 |
Collision Resolution | p. 131 |
Bucket Hashing | p. 131 |
Hashing Efficiency | p. 131 |
The Map ADT Revisited | p. 131 |
Application: The Color Histogram | p. 131 |
Exercises | p. 131 |
Programming Problems | p. 131 |
Recursion 133 | |
Recursive Functions | p. 133 |
Properties of Recursion | p. 133 |
Classic Example: The Factorial Function | p. 133 |
Greatest Common Divisor | p. 133 |
Recursion and Stacks | p. 133 |
The Towers of Hanoi | p. 133 |
Backtracking Revisited | p. 133 |
The EightâÇôQueens Problem | p. 133 |
Solving the FourâÇôQueens | p. 133 |
Recursive Solution | p. 133 |
Application: Sudoku Puzzles | p. 133 |
Exercises | p. 133 |
Programming Problems | p. 133 |
Binary Trees and Heaps 135 | |
Tree Structure | p. 135 |
The Binary Tree | p. 135 |
Traversals | p. 135 |
Arithmetic Expresssions | p. 135 |
Tree Threading | p. 135 |
Heaps | p. 135 |
Insertions | p. 135 |
Removals | p. 135 |
Evaluating the Heap | p. 135 |
The Priority Queue Revisited | p. 135 |
Application: Morse Code | p. 135 |
Exercises | p. 135 |
Programming Problems | p. 135 |
Advanced Search Trees 137 | |
The Binary Search Tree | p. 138 |
Searching | p. 138 |
Insertions | p. 138 |
Deletions | p. 138 |
Evaluating the BST | p. 138 |
AVL Trees | p. 138 |
Insertions | p. 138 |
Deletions | p. 138 |
Evaluating the AVL Tree | p. 138 |
2âÇô3 Trees | p. 138 |
Splay Trees | p. 138 |
Application: Improved Map ADT | p. 138 |
Exercises | p. 138 |
Programming Problems | p. 138 |
Sorting Algorithms 139 | |
The Simple Algorithms | p. 140 |
Bubble Sort | p. 140 |
Selection Sort | p. 140 |
Insertion Sort | p. 140 |
Radix Sort | p. 140 |
Basic Algorithm | p. 140 |
Bucket Sorting | p. 140 |
Divide and Conquer | p. 140 |
Merge Sort | p. 140 |
Quick Sort | p. 140 |
Heap Sort | p. 140 |
Application: Empirical Analysis | p. 140 |
Exercises | p. 140 |
Programming Problems | p. 140 |
Python Review | p. 141 |
Basic Concepts | p. 141 |
Functions | p. 141 |
Sequence Types | p. 141 |
Classes | p. 141 |
Copying Objects | p. 141 |
Exceptions | p. 141 |
ObjectâÇôOriented Programming 143 | |
Introduction | p. 143 |
Encapsulation | p. 143 |
Inheritance | p. 143 |
Polymorphism | p. 143 |
Table of Contents provided by Publisher. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.