My Account Log in

1 option

Data Structures and Algorithms in Python.

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Lafore, Robert.
Contributor:
Broder, Alan.
Canning, John.
Series:
Developer's Library
Language:
English
Subjects (All):
Data structures (Computer science).
Python (Computer program language).
Computer algorithms.
Algorithms.
Physical Description:
1 online resource (1193 pages)
Edition:
1st ed.
Place of Publication:
[Place of publication not identified] : ADDISON-WESLEY, 2019.
Sydney : Addison Wesley, 2022.
Summary:
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 Lafores legendary Java-based guide, this book helps you understand exactly how data structures and algorithms operate. Youll learn how to efficiently apply them with the enormously popular Python language and scale your code to handle todays 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 youre 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 todays, and tomorrows, 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 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.
Contents:
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?
Programming Projects
Chapter 3. Simple Sorting
How Would You Do It?
Bubble Sort
Selection Sort
Insertion Sort
Comparing the Simple Sorts
Chapter 4. Stacks and Queues
Different Structures for Different Use Cases
Stacks
Queues
Priority Queues
Parsing Arithmetic Expressions
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
Chapter 6. Recursion.
Triangular Numbers
Factorials
Anagrams
A Recursive Binary Search
The Tower of Hanoi
Sorting with mergesort
Eliminating Recursion
Some Interesting Recursive Applications
Chapter 7. Advanced Sorting
Shellsort
Partitioning
Quicksort
Radix Sort
Timsort
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
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
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
Chapter 11. Hash Tables
Introduction to Hashing
Open Addressing
Separate Chaining
Hash Functions
Hashing Efficiency
Hashing and External Storage
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
Chapter 13. Heaps
Introduction to Heaps
The Heap Visualization Tool
Python Code for Heaps
A Tree-Based Heap
Heapsort
Order Statistics
Chapter 14. Graphs
Introduction to Graphs
Traversal and Search
Minimum Spanning Trees
Topological Sorting
Connectivity in Directed Graphs
Chapter 15. Weighted Graphs
Minimum Spanning Tree with Weighted Graphs
The Shortest-Path Problem
The All-Pairs Shortest-Path Problem
Efficiency
Intractable Problems
Chapter 16. What to Use and Why
Analyzing the Problem
Foundational Data Structures
Special-Ordering Data Structures
Sorting
Specialty Data Structures
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.
Notes:
Description based on publisher supplied metadata and other sources.
ISBN:
9780134855912
0134855914
9780134855882
0134855884
9780134855899
0134855892
OCLC:
1343718541

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account