Book description
This practical introduction to data structures and algorithms can help every programmer who wants to write more efficient software. Building on Robert Lefore's legendary Javabased guide, this book helps you understand exactly how data structures and algorithms operate. You'll learn how to efficiently apply them with the enormously popular Python language and scale your code to handle today's big data challenges.
Throughout, the authors focus on realworld examples, communicate key ideas with intuitive, interactive visualizations, and limit complexity and math to what you need to improve performance. Stepbystep, they introduce arrays, sorting, stacks, queues, linked lists, recursion, binary trees, 234 trees, hash tables, spatial data structures, graphs, and more. Their code examples and illustrations are so clear, you can understand them even if you're a nearbeginner, or your experience is with other procedural or objectoriented languages.
Build core computer science skills that take you beyond merely "writing code"
Learn how data structures make programs (and programmers) more efficient
See how data organization and algorithms affect how much you can do with today's, and tomorrow's, computing resources
Develop data structure implementation skills you can use in any language
Choose the best data structure(s) and algorithms for each programming problemand recognize which ones to avoid
Table of contents
 Cover
 Halftitle Page
 Title Page
 Copyright Page
 Pearson’s Commitment to Diversity, Equity, and Inclusion
 Dedication Page
 Contents
 Table of Contents
 Acknowledgments
 About the Author
 Introduction
 1. Overview
 2. Arrays
 3. Simple Sorting
 4. Stacks and Queues
 5. Linked Lists
 6. Recursion
 7. Advanced Sorting

8. Binary Trees
 Why Use Binary Trees?
 Tree Terminology
 An Analogy
 How Do Binary Search Trees Work?
 Finding a Node
 Inserting a Node
 Traversing the Tree
 Finding Minimum and Maximum Key Values
 Deleting a Node
 The Efficiency of Binary Search Trees
 Trees Represented as Arrays
 Printing Trees
 Duplicate Keys
 The BinarySearchTreeTester.py Program
 The Huffman Code
 Summary
 Questions
 Experiments
 Programming Projects
 9. 234 Trees and External Storage

10. AVL and RedBlack Trees
 Our Approach to the Discussion
 Balanced and Unbalanced Trees
 AVL Trees
 The Efficiency of AVL Trees
 RedBlack Trees
 Using the RedBlack Tree Visualization Tool
 Experimenting with the Visualization Tool
 Rotations in RedBlack Trees
 Inserting a New Node
 Deletion
 The Efficiency of RedBlack Trees
 234 Trees and RedBlack Trees
 RedBlack Tree Implementation
 Summary
 Questions
 Experiments
 Programming Projects
 11. Hash Tables
 12. Spatial Data Structures
 13. Heaps
 14. Graphs
 15. Weighted Graphs
 16. What to Use and Why
 Appendix A. Running the Visualizations
 Appendix B. Further Reading

Appendix C. Answers to Questions
 Chapter 1, “Overview”
 Chapter 2, “Arrays”
 Chapter 3, “Simple Sorting”
 Chapter 4, “Stacks and Queues”
 Chapter 5, “Linked Lists”
 Chapter 6, “Recursion”
 Chapter 7, “Advanced Sorting”
 Chapter 8, “Binary Trees”
 Chapter 9, “234 Trees and External Storage”
 Chapter 10, “AVL and RedBlack Trees”
 Chapter 11, “Hash Tables”
 Chapter 12, “Spatial Data Structures”
 Chapter 13, “Heaps”
 Chapter 14, “Graphs”
 Chapter 15, “Weighted Graphs”
Product information
 Title: Data Structures & Algorithms in Python
 Author(s):
 Release date: October 2022
 Publisher(s): AddisonWesley Professional
 ISBN: 9780134855912
You might also like
book
Data Structures and Algorithms in Python
Based on the authors' market leading data structures books in Java and C++, this textbook offers …
book
HandsOn Data Structures and Algorithms with Python  Third Edition
Understand how implementing different data structures and algorithms intelligently can make your Python code and applications …
book
HandsOn Data Structures and Algorithms with Python
Learn to implement complex data structures and algorithms using Python Key Features Understand the analysis and …
book
Advanced Algorithms and Data Structures
As a software engineer, you’ll encounter countless programming challenges that initially seem confusing, difficult, or even …