- Table of Contents
- Scratch ActiveCode
- Navigation Help
- Help for Instructors
- About Runestone
- Report A Problem
- 1. Introduction
- 2. Analysis
- 3. Basic Data Structures
- 4. Recursion
- 5. Sorting and Searching
- 6. Trees and Tree Algorithms
- 7. Graphs and Graph Algorithms
Problem Solving with Algorithms and Data Structures using Python ¶
By Brad Miller and David Ranum, Luther College (as remixed by Jeffrey Elkner)
- 1.1. Objectives
- 1.2. Getting Started
- 1.3. What Is Computer Science?
- 1.4. What Is Programming?
- 1.5. Why Study Data Structures and Abstract Data Types?
- 1.6. Why Study Algorithms?
- 1.7. Review of Basic Python
- 1.8.1. Built-in Atomic Data Types
- 1.8.2. Built-in Collection Data Types
- 1.9.1. String Formatting
- 1.10. Control Structures
- 1.11. Exception Handling
- 1.12. Defining Functions
- 1.13.1. A Fraction Class
- 1.13.2. Inheritance: Logic Gates and Circuits
- 1.14. Summary
- 1.15. Key Terms
- 1.16. Discussion Questions
- 1.17. Programming Exercises
- 2.1. Objectives
- 2.2. What Is Algorithm Analysis?
- 2.3. Big-O Notation
- 2.4.1. Solution 1: Checking Off
- 2.4.2. Solution 2: Sort and Compare
- 2.4.3. Solution 3: Brute Force
- 2.4.4. Solution 4: Count and Compare
- 2.5. Performance of Python Data Structures
- 2.7. Dictionaries
- 2.8. Summary
- 2.9. Key Terms
- 2.10. Discussion Questions
- 2.11. Programming Exercises
- 3.1. Objectives
- 3.2. What Are Linear Structures?
- 3.3. What is a Stack?
- 3.4. The Stack Abstract Data Type
- 3.5. Implementing a Stack in Python
- 3.6. Simple Balanced Parentheses
- 3.7. Balanced Symbols (A General Case)
- 3.8. Converting Decimal Numbers to Binary Numbers
- 3.9.1. Conversion of Infix Expressions to Prefix and Postfix
- 3.9.2. General Infix-to-Postfix Conversion
- 3.9.3. Postfix Evaluation
- 3.10. What Is a Queue?
- 3.11. The Queue Abstract Data Type
- 3.12. Implementing a Queue in Python
- 3.13. Simulation: Hot Potato
- 3.14.1. Main Simulation Steps
- 3.14.2. Python Implementation
- 3.14.3. Discussion
- 3.15. What Is a Deque?
- 3.16. The Deque Abstract Data Type
- 3.17. Implementing a Deque in Python
- 3.18. Palindrome-Checker
- 3.19. Lists
- 3.20. The Unordered List Abstract Data Type
- 3.21.1. The Node Class
- 3.21.2. The Unordered List Class
- 3.22. The Ordered List Abstract Data Type
- 3.23.1. Analysis of Linked Lists
- 3.24. Summary
- 3.25. Key Terms
- 3.26. Discussion Questions
- 3.27. Programming Exercises
- 4.1. Objectives
- 4.2. What Is Recursion?
- 4.3. Calculating the Sum of a List of Numbers
- 4.4. The Three Laws of Recursion
- 4.5. Converting an Integer to a String in Any Base
- 4.6. Stack Frames: Implementing Recursion
- 4.7. Introduction: Visualizing Recursion
- 4.8. Sierpinski Triangle
- 4.9. Complex Recursive Problems
- 4.10. Tower of Hanoi
- 4.11. Exploring a Maze
- 4.12. Dynamic Programming
- 4.13. Summary
- 4.14. Key Terms
- 4.15. Discussion Questions
- 4.16. Glossary
- 4.17. Programming Exercises
- 5.1. Objectives
- 5.2. Searching
- 5.3.1. Analysis of Sequential Search
- 5.4.1. Analysis of Binary Search
- 5.5.1. Hash Functions
- 5.5.2. Collision Resolution
- 5.5.3. Implementing the Map Abstract Data Type
- 5.5.4. Analysis of Hashing
- 5.6. Sorting
- 5.7. The Bubble Sort
- 5.8. The Selection Sort
- 5.9. The Insertion Sort
- 5.10. The Shell Sort
- 5.11. The Merge Sort
- 5.12. The Quick Sort
- 5.13. Summary
- 5.14. Key Terms
- 5.15. Discussion Questions
- 5.16. Programming Exercises
- 6.1. Objectives
- 6.2. Examples of Trees
- 6.3. Vocabulary and Definitions
- 6.4. List of Lists Representation
- 6.5. Nodes and References
- 6.6. Parse Tree
- 6.7. Tree Traversals
- 6.8. Priority Queues with Binary Heaps
- 6.9. Binary Heap Operations
- 6.10.1. The Structure Property
- 6.10.2. The Heap Order Property
- 6.10.3. Heap Operations
- 6.11. Binary Search Trees
- 6.12. Search Tree Operations
- 6.13. Search Tree Implementation
- 6.14. Search Tree Analysis
- 6.15. Balanced Binary Search Trees
- 6.16. AVL Tree Performance
- 6.17. AVL Tree Implementation
- 6.18. Summary of Map ADT Implementations
- 6.19. Summary
- 6.20. Key Terms
- 6.21. Discussion Questions
- 6.22. Programming Exercises
- 7.1. Objectives
- 7.2. Vocabulary and Definitions
- 7.3. The Graph Abstract Data Type
- 7.4. An Adjacency Matrix
- 7.5. An Adjacency List
- 7.6. Implementation
- 7.7. The Word Ladder Problem
- 7.8. Building the Word Ladder Graph
- 7.9. Implementing Breadth First Search
- 7.10. Breadth First Search Analysis
- 7.11. The Knight’s Tour Problem
- 7.12. Building the Knight’s Tour Graph
- 7.13. Implementing Knight’s Tour
- 7.14. Knight’s Tour Analysis
- 7.15. General Depth First Search
- 7.16. Depth First Search Analysis
- 7.17. Topological Sorting
- 7.18. Strongly Connected Components
- 7.19. Shortest Path Problems
- 7.20. Dijkstra’s Algorithm
- 7.21. Analysis of Dijkstra’s Algorithm
- 7.22. Prim’s Spanning Tree Algorithm
- 7.23. Summary
- 7.24. Key Terms
- 7.25. Discussion Questions
- 7.26. Programming Exercises
Acknowledgements ¶
We are very grateful to Franklin Beedle Publishers for allowing us to make this interactive textbook freely available. This online version is dedicated to the memory of our first editor, Jim Leisy, who wanted us to “change the world.”
Indices and tables ¶
- Module Index
- Search Page
Recently Visited
Top Categories
Children's Books
Discover Diverse Voices
More Categories
All Categories
New & Trending
Deals & Rewards
Best Sellers
From Our Editors
Memberships
Communities
- Computers & Technology
- Programming
Amazon Prime Free Trial
FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with FREE Delivery" below the Add to Cart button and confirm your Prime free trial.
- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited FREE Prime delivery
- Streaming of thousands of movies and TV shows with limited ads on Prime Video.
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
Buy new: .savingPriceOverride { color:#CC0C39!important; font-weight: 300!important; } .reinventMobileHeaderPrice { font-weight: 400; } #apex_offerDisplay_mobile_feature_div .reinventPriceSavingsPercentageMargin, #apex_offerDisplay_mobile_feature_div .reinventPricePriceToPayMargin { margin-right: 4px; } -35% $32.58 $ 32 . 58 FREE delivery Friday, November 29 on orders shipped by Amazon over $35 Ships from: Amazon.com Sold by: Amazon.com
Return this item for free.
We offer easy, convenient returns with at least one free return option: no shipping charges. All returns must comply with our returns policy.
- Go to your orders and start the return
- Select your preferred free shipping option
- Drop off and leave!
Save with Used - Very Good .savingPriceOverride { color:#CC0C39!important; font-weight: 300!important; } .reinventMobileHeaderPrice { font-weight: 400; } #apex_offerDisplay_mobile_feature_div .reinventPriceSavingsPercentageMargin, #apex_offerDisplay_mobile_feature_div .reinventPricePriceToPayMargin { margin-right: 4px; } $30.77 $ 30 . 77 FREE delivery Friday, November 29 on orders shipped by Amazon over $35 Ships from: Amazon Sold by: Big Boss Books
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required .
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Image Unavailable
- To view this video download Flash Player
Follow the author
Problem Solving with Algorithms and Data Structures Using Python 2nd Edition 2nd Edition
There is a newer edition of this item:.
Purchase options and add-ons
- ISBN-10 1590282574
- ISBN-13 978-1590282571
- Edition 2nd
- Publisher Franklin, Beedle & Associates
- Publication date August 22, 2011
- Language English
- Dimensions 7.5 x 0.99 x 9.25 inches
- Print length 438 pages
- See all details
Frequently bought together
Similar items that may deliver to you quickly
Product details
- Publisher : Franklin, Beedle & Associates; 2nd edition (August 22, 2011)
- Language : English
- Paperback : 438 pages
- ISBN-10 : 1590282574
- ISBN-13 : 978-1590282571
- Item Weight : 1.65 pounds
- Dimensions : 7.5 x 0.99 x 9.25 inches
- #17 in Data Structure and Algorithms
- #836 in Python Programming
- #977 in Microsoft Programming (Books)
About the author
Bradley n. miller.
Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
- 5 star 4 star 3 star 2 star 1 star 5 star 75% 16% 5% 1% 3% 75%
- 5 star 4 star 3 star 2 star 1 star 4 star 75% 16% 5% 1% 3% 16%
- 5 star 4 star 3 star 2 star 1 star 3 star 75% 16% 5% 1% 3% 5%
- 5 star 4 star 3 star 2 star 1 star 2 star 75% 16% 5% 1% 3% 1%
- 5 star 4 star 3 star 2 star 1 star 1 star 75% 16% 5% 1% 3% 3%
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Reviews with images
Easy to follow
- Sort by reviews type Top reviews Most recent Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. please try again later..
Top reviews from other countries
- Amazon Newsletter
- About Amazon
- Accessibility
- Sustainability
- Press Center
- Investor Relations
- Amazon Devices
- Amazon Science
- Sell on Amazon
- Sell apps on Amazon
- Supply to Amazon
- Protect & Build Your Brand
- Become an Affiliate
- Become a Delivery Driver
- Start a Package Delivery Business
- Advertise Your Products
- Self-Publish with Us
- Become an Amazon Hub Partner
- › See More Ways to Make Money
- Amazon Visa
- Amazon Store Card
- Amazon Secured Card
- Amazon Business Card
- Shop with Points
- Credit Card Marketplace
- Reload Your Balance
- Amazon Currency Converter
- Your Account
- Your Orders
- Shipping Rates & Policies
- Amazon Prime
- Returns & Replacements
- Manage Your Content and Devices
- Recalls and Product Safety Alerts
- Registry & Gift List
- Conditions of Use
- Privacy Notice
- Consumer Health Data Privacy Disclosure
- Your Ads Privacy Choices
Data Structures
Arrays - ds easy problem solving (basic) max score: 10 success rate: 93.00%, 2d array - ds easy problem solving (basic) max score: 15 success rate: 93.19%, dynamic array easy problem solving (basic) max score: 15 success rate: 87.10%, left rotation easy problem solving (basic) max score: 20 success rate: 91.63%, sparse arrays medium problem solving (basic) max score: 25 success rate: 97.30%, array manipulation hard problem solving (intermediate) max score: 60 success rate: 62.34%, print the elements of a linked list easy problem solving (basic) max score: 5 success rate: 97.10%, insert a node at the tail of a linked list easy problem solving (intermediate) max score: 5 success rate: 95.32%, insert a node at the head of a linked list easy problem solving (basic) max score: 5 success rate: 98.29%, insert a node at a specific position in a linked list easy problem solving (intermediate) max score: 5 success rate: 96.94%, cookie support is required to access hackerrank.
Seems like cookies are disabled on this browser, please enable them to open this website
IMAGES
VIDEO
COMMENTS
Learn how to solve problems with algorithms and data structures using Python. This book covers topics such as analysis, stacks, queues, lists, recursion, sorting, searching, trees, graphs and more.
Learn how to use Python to solve problems with algorithms and data structures. This book covers topics such as analysis, stacks, queues, lists, recursion, sorting, searching, trees, heaps, and more.
We cover abstract data types and data structures, writing algorithms, and solving problems. We look at a number of data structures and solve classic problems that arise. The tools and techniques that you learn here will be applied over and over as you continue your study of computer science.
Join over 23 million developers in solving code challenges on HackerRank, one of the best ways to prepare for programming interviews.
Problem Solving with Algorithms and Data Structures, Release 3.0 Control constructs allow algorithmic steps to be represented in a convenient yet unambiguous way.
Data structures and algorithms courses provide essential skills for solving complex computational problems. Introductory classes cover foundational topics like arrays, linked lists, sorting, and searching algorithms. Advanced learners can earn certificates in areas such as graph theory, dynamic programming, and algorithm optimization.