This is a modified version of pythonds, the work done by Brad Miller and David Ranum, Luther College.
Analysis¶
Basic Data Structures¶
- The Stack Abstract Data Type
- Implementing a Stack in Python
- Simple Balanced Parentheses
- Converting Decimal Numbers to Binary Numbers
- The Queue Abstract Data Type
- Implementing a Queue in Python
- Simulation: Hot Potato
- The Unordered List Abstract Data Type
- Implementing an Unordered List: Linked Lists
- The Ordered List Abstract Data Type
- Implementing an Ordered List
Sorting and Searching¶
Trees and Tree Algorithms¶
- Objectives
- Examples of Trees
- Vocabulary and Definitions
- List of Lists Representation
- Nodes and References
- Tree Traversals
- Priority Queues with Binary Heaps
- Binary Heap Operations
- Binary Heap Implementation
- Binary Search Trees
- Search Tree Operations
- Search Tree Implementation
- Search Tree Analysis
- Discussion Questions
- Programming Exercises
Graphs and Graph Algorithms¶
- Vocabulary and Definitions
- The Graph Abstract Data Type
- An Adjacency Matrix
- An Adjacency List
- Implementation
- Implementing Breadth First Search
- Breadth First Search Analysis
- General Depth First Search
- Depth First Search Analysis
- Strongly Connected Components
- Shortest Path Problems
- Dijkstra’s Algorithm
- Analysis of Dijkstra’s Algorithm
- Prim’s Spanning Tree Algorithm
- Discussion Questions
- Programming Exercises
Assignments (in italian)¶
Indices and tables¶
This version has been modified by Andrea Marino and is licensed under the same license of the original work. Problem Solving with Algorithms and Data Structures using Python by Bradley N. Miller, David L. Ranum is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.