Data Structures & Algorithms in Python
- Length: 928 pages
- Edition: 1
- Language: English
- Publisher: Addison-Wesley Professional
- Publication Date: 2022-09-05
- ISBN-10: 013485568X
- ISBN-13: 9780134855684
- Sales Rank: #5561878 (See Top 100 Books)
LEARN HOW TO USE DATA STRUCTURES IN WRITING HIGH PERFORMANCE PYTHON PROGRAMS AND ALGORITHMS
This practical introduction to data structures and algorithms can help every programmer who wants to write more efficient software. Building on Robert Lafore’s legendary Java-based 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 real-world examples, communicate key ideas with intuitive, interactive visualizations, and limit complexity and math to what you need to improve performance. Step-by-step, they introduce arrays, sorting, stacks, queues, linked lists, recursion, binary trees, 2-3-4 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 near-beginner, or your experience is with other procedural or object-oriented 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 problem–and recognize which ones to avoid Data Structures & Algorithms in Python is packed with examples, review questions, individual and team exercises, thought experiments, and longer programming projects. It’s ideal for both self-study and classroom settings, and either as a primary text or as a complement to a more formal presentation.
Cover Page About This eBook Title Page Copyright Page Contents at a Glance Table of Contents Pearson’s Commitment to Diversity, Equity, and Inclusion Dedication Page Acknowledgments Acknowledgments to the First Edition, Data Structures and Algorithms in Java Acknowledgments to the Second Edition About the Authors Introduction Who This Book Is For What You Need to Know Before You Read This Book What You Can Learn from This Book Structure History Figure Credits Chapter 1. Overview What Are Data Structures and Algorithms? Overview of Data Structures Overview of Algorithms Some Definitions Programming in Python Object-Oriented Programming Summary Questions Experiments Chapter 2. Arrays The Array Visualization Tool Using Python Lists to Implement the Array Class The OrderedArray Visualization Tool Binary Search Python Code for an OrderedArray Class Logarithms Storing Objects Big O Notation Why Not Use Arrays for Everything? Summary Questions Experiments Programming Projects Chapter 3. Simple Sorting How Would You Do It? Bubble Sort Selection Sort Insertion Sort Comparing the Simple Sorts Summary Questions Experiments Programming Projects Chapter 4. Stacks and Queues Different Structures for Different Use Cases Stacks Queues Priority Queues Parsing Arithmetic Expressions Summary Questions Experiments Programming Projects Chapter 5. Linked Lists Links The LinkedList Visualization Tool A Simple Linked List Double-Ended Lists Linked List Efficiency Abstract Data Types and Objects Ordered Lists Doubly Linked Lists Circular Lists Iterators Summary Questions Experiments Programming Projects Chapter 6. Recursion Triangular Numbers Factorials Anagrams A Recursive Binary Search The Tower of Hanoi Sorting with mergesort Eliminating Recursion Some Interesting Recursive Applications Summary Questions Experiments Programming Projects Chapter 7. Advanced Sorting Shellsort Partitioning Quicksort Radix Sort Timsort Summary Questions Experiments Programming Projects Chapter 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 Chapter 9. 2-3-4 Trees and External Storage Introduction to 2-3-4 Trees The Tree234 Visualization Tool Python Code for a 2-3-4 Tree Efficiency of 2-3-4 Trees 2-3 Trees External Storage Summary Questions Experiments Programming Projects Chapter 10. AVL and Red-Black Trees Our Approach to the Discussion Balanced and Unbalanced Trees AVL Trees The Efficiency of AVL Trees Red-Black Trees Using the Red-Black Tree Visualization Tool Experimenting with the Visualization Tool Rotations in Red-Black Trees Inserting a New Node Deletion The Efficiency of Red-Black Trees 2-3-4 Trees and Red-Black Trees Red-Black Tree Implementation Summary Questions Experiments Programming Projects Chapter 11. Hash Tables Introduction to Hashing Open Addressing Separate Chaining Hash Functions Hashing Efficiency Hashing and External Storage Summary Questions Experiments Programming Projects Chapter 12. Spatial Data Structures Spatial Data Computing Distances Between Points Circles and Bounding Boxes Searching Spatial Data Lists of Points Grids Quadtrees Theoretical Performance and Optimizations Practical Considerations Further Extensions Summary Questions Experiments Programming Projects Chapter 13. Heaps Introduction to Heaps The Heap Visualization Tool Python Code for Heaps A Tree-Based Heap Heapsort Order Statistics Summary Questions Experiments Programming Projects Chapter 14. Graphs Introduction to Graphs Traversal and Search Minimum Spanning Trees Topological Sorting Connectivity in Directed Graphs Summary Questions Experiments Programming Projects Chapter 15. Weighted Graphs Minimum Spanning Tree with Weighted Graphs The Shortest-Path Problem The All-Pairs Shortest-Path Problem Efficiency Intractable Problems Summary Questions Experiments Programming Projects Chapter 16. What to Use and Why Analyzing the Problem Foundational Data Structures Special-Ordering Data Structures Sorting Specialty Data Structures External Storage Onward Appendixes Appendix A. Running the Visualizations For Developers: Running and Changing the Visualizations For Managers: Downloading and Running the Visualizations For Others: Viewing the Visualizations on the Internet Using the Visualizations Appendix B. Further Reading Data Structures and Algorithms Object-Oriented Programming Languages Object-Oriented Design (OOD) and Software Engineering 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, “2-3-4 Trees and External Storage” Chapter 10, “AVL and Red-Black Trees” Chapter 11, “Hash Tables” Chapter 12, “Spatial Data Structures” Chapter 13, “Heaps” Chapter 14, “Graphs” Chapter 15, “Weighted Graphs” Index Code Snippets
Donate to keep this site alive
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.