Data structures and algorithms in Python / Michael T. Goodrich, Department of Computer Science, University of California, Irvine, Roberto Tamassia, Department of Computer Science, Brown University, Michael H. Goldwasser, Department of Mathematics and Computer Science, Saint Louis University
- Cover; Title Page; Copyright Page; Preface; Contents; 1 Python Primer; 1.1 Python Overview; 1.1.1 The Python Interpreter; 1.1.2 Preview of a Python Program; 1.2 Objects in Python; 1.2.1 Identifiers, Objects, and the Assignment Statement; 1.2.2 Creating and Using Objects; 1.2.3 Python's Built-In Classes; 1.3 Expressions, Operators, and Precedence; 1.3.1 Compound Expressions and Operator Precedence; 1.4 Control Flow; 1.4.1 Conditionals; 1.4.2 Loops; 1.5 Functions; 1.5.1 Information Passing; 1.5.2 Python's Built-In Functions; 1.6 Simple Input and Output; 1.6.1 Console Input and Output.
1.6.2 Files1.7 Exception Handling; 1.7.1 Raising an Exception; 1.7.2 Catching an Exception; 1.8 Iterators and Generators; 1.9 Additional Python Conveniences; 1.9.1 Conditional Expressions; 1.9.2 Comprehension Syntax; 1.9.3 Packing and Unpacking of Sequences; 1.10 Scopes and Namespaces; 1.11 Modules and the Import Statement; 1.11.1 Existing Modules; 1.12 Exercises; 2 Object-Oriented Programming; 2.1 Goals, Principles, and Patterns; 2.1.1 Object-Oriented Design Goals; 2.1.2 Object-Oriented Design Principles; 2.1.3 Design Patterns; 2.2 Software Development; 2.2.1 Design; 2.2.2 Pseudo-Code.
2.2.3 Coding Style and Documentation2.2.4 Testing and Debugging; 2.3 Class Definitions; 2.3.1 Example: CreditCard Class; 2.3.2 Operator Overloading and Python's Special Methods; 2.3.3 Example: Multidimensional Vector Class; 2.3.4 Iterators; 2.3.5 Example: Range Class; 2.4 Inheritance; 2.4.1 Extending the CreditCard Class; 2.4.2 Hierarchy of Numeric Progressions; 2.4.3 Abstract Base Classes; 2.5 Namespaces and Object-Orientation; 2.5.1 Instance and Class Namespaces; 2.5.2 Name Resolution and Dynamic Dispatch; 2.6 Shallow and Deep Copying; 2.7 Exercises; 3 Algorithm Analysis.
3.1 Experimental Studies3.1.1 Moving Beyond Experimental Analysis; 3.2 The Seven Functions Used in This Book; 3.2.1 Comparing Growth Rates; 3.3 Asymptotic Analysis; 3.3.1 The "Big-Oh" Notation; 3.3.2 Comparative Analysis; 3.3.3 Examples of Algorithm Analysis; 3.4 Simple Justification Techniques; 3.4.1 By Example; 3.4.2 The "Contra" Attack; 3.4.3 Induction and Loop Invariants; 3.5 Exercises; 4 Recursion; 4.1 Illustrative Examples; 4.1.1 The Factorial Function; 4.1.2 Drawing an English Ruler; 4.1.3 Binary Search; 4.1.4 File Systems; 4.2 Analyzing Recursive Algorithms; 4.3 Recursion Run Amok.
4.3.1 Maximum Recursive Depth in Python4.4 Further Examples of Recursion; 4.4.1 Linear Recursion; 4.4.2 Binary Recursion; 4.4.3 Multiple Recursion; 4.5 Designing Recursive Algorithms; 4.6 Eliminating Tail Recursion; 4.7 Exercises; 5 Array-Based Sequences; 5.1 Python's Sequence Types; 5.2 Low-Level Arrays; 5.2.1 Referential Arrays; 5.2.2 Compact Arrays in Python; 5.3 Dynamic Arrays and Amortization; 5.3.1 Implementing a Dynamic Array; 5.3.2 Amortized Analysis of Dynamic Arrays; 5.3.3 Python's List Class; 5.4 Efficiency of Python's Sequence Types; 5.4.1 Python's List and Tuple Classes.
- This textbook offers a comprehensive, definitive introduction to data structures in Python by respected authors. It is the first mainstream object-oriented book available not only for the Python data structures course, but also provides a comprehensive introduction to data structures and algorithms, including their design, analysis, and implementation.
- 9781118476734 (pdf)
- Bibliography Note:
- Includes bibliographical references and index.
View MARC record | catkey: 25340090