Data Structures and Algorithms in Python
(DS-Algo) / ISBN : 978-1-64459-105-5
About This Course
Use the Data Structures and Algorithms in Python course and lab to master all the concepts associated with Data Structures algorithms. The lab is cloud-based, device-enabled, and can easily be integrated with an LMS. With this course, you will learn common data structures and algorithms in Python and gain skills on topics like object-oriented programming, algorithm analysis, graph algorithms, array-based sequences, memory management, text processing, linked lists, and recursions.
Skills You’ll Get
Get the support you need. Enroll in our Instructor-Led Course.
Interactive Lessons
17+ Interactive Lessons | 149+ Quizzes | 89+ Flashcards | 89+ Glossary of terms
Gamified TestPrep
75+ Pre Assessment Questions | 75+ Post Assessment Questions |
Python Primer
- Python Overview
- Objects in Python
- Expressions, Operators, and Precedence
- Control Flow
- Functions
- Simple Input and Output
- Exception Handling
- Iterators and Generators
- Additional Python Conveniences
- Scopes and Namespaces
- Modules and the Import Statement
- Exercises
Object-Oriented Programming
- Goals, Principles, and Patterns
- Software Development
- Class Definitions
- Inheritance
- Namespaces and Object-Orientation
- Shallow and Deep Copying
- Exercises
Algorithm Analysis
- Experimental Studies
- The Seven Functions Used in This Course
- Asymptotic Analysis
- Simple Justification Techniques
- Exercises
Recursion
- Illustrative Examples
- Analyzing Recursive Algorithms
- Recursion Run Amok
- Further Examples of Recursion
- Designing Recursive Algorithms
- Eliminating Tail Recursion
- Exercises
Array-Based Sequences
- Python's Sequence Types
- Low-Level Arrays
- Dynamic Arrays and Amortization
- Efficiency of Python's Sequence Types
- Using Array-Based Sequences
- Multidimensional Data Sets
- Exercises
Stacks, Queues, and Deques
- Stacks
- Queues
- Double-Ended Queues
- Exercises
Linked Lists
- Singly Linked Lists
- Circularly Linked Lists
- Doubly Linked Lists
- The Positional List ADT
- Sorting a Positional List
- Case Study: Maintaining Access Frequencies
- Link-Based vs. Array-Based Sequences
- Exercises
Trees
- General Trees
- Binary Trees
- Implementing Trees
- Tree Traversal Algorithms
- Case Study: An Expression Tree
- Exercises
Priority Queues
- The Priority Queue Abstract Data Type
- Implementing a Priority Queue
- Heaps
- Sorting with a Priority Queue
- Adaptable Priority Queues
- Exercises
Maps, Hash Tables, and Skip Lists
- Maps and Dictionaries
- Hash Tables
- Sorted Maps
- Skip Lists
- Sets, Multisets, and Multimaps
- Exercises
Search Trees
- Binary Search Trees
- Balanced Search Trees
- AVL Trees
- Splay Trees
- (2,4) Trees
- Red-Black Trees
- Exercises
Sorting and Selection
- Why Study Sorting Algorithms?
- Merge-Sort
- Quick-Sort
- Studying Sorting through an Algorithmic Lens
- Comparing Sorting Algorithms
- Python's Built-In Sorting Functions
- Selection
- Exercises
Text Processing
- Abundance of Digitized Text
- Pattern-Matching Algorithms
- Dynamic Programming
- Text Compression and the Greedy Method
- Tries
- Exercises
Graph Algorithms
- Graphs
- Data Structures for Graphs
- Graph Traversals
- Transitive Closure
- Directed Acyclic Graphs
- Shortest Paths
- Minimum Spanning Trees
- Exercises
Memory Management and B-Trees
- Memory Management
- Memory Hierarchies and Caching
- External Searching and B-Trees
- External-Memory Sorting
- Exercises
Appendix A: Character Strings in Python
Appendix B: Useful Mathematical Facts
Python Primer
- Using the Bitwise Operator
- Using the Equality Operator and the list Class
- Using Arithmetic Operators
- Performing Bitwise Operations
- Using the Comparison Operator
- Using the if-elif-else Statement - Part 1
- Using the if-elif-else Statement - Part 2
- Using the if-else Statement
- Determining the Armstrong Number
- Rectifying Errors
- Finding LCM of Two Numbers
- Creating a Function with its Default Value
- Handling Exception
- Using the dir Function
- Using the math Module
Object-Oriented Programming
- Understanding the init Method
- Understanding Numeric Progressions
Recursion
- Calculating the Product of Two Positive Integers
- Finding the Minimum Element
Array-Based Sequences
- Using the getsizeof Function
- Implementing a Dynamic Array
- Adding Elements to a List
- Using the extend Method
- Removing Elements from a List
- Constructing the Caesar Cipher Algorithm
Stacks, Queues, and Deques
- Using Stack Abstract Data Type Method
Linked Lists
- Implementing a Stack
- Implementing a Queue
- Implementing a Queue with a Circular Linked List
- Implementing a Deque with a Doubly Linked List
Maps, Hash Tables, and Skip Lists
- Adding Elements to a Set
- Performing Set Operations
Sorting and Selection
- Using a Sorting Function
- Using the len() Built-In Function
Text Processing
- Performing Pattern Matching