CTU-CD230.AE1 ISBN: 978-1-64459-832-0
Introduction to Data Structures for Programming
Intermediate Self-paced · 1 year access
38 Hands-On LiveLabs
Practice real IT tasks in guided environments.
- Real environments
- Auto-graded
- No installation
01 / Lessons & labs
See exactly what you will learn and practice
Lessons
6 Interactive Lessons · 107 topics01 Week 1: Introduction to Data Structures and Algorithms 18 topics · 4 LiveLab +
- Data Structure and its Types
- Introduction to Algorithms
- Characteristics of Algorithms
- Algorithm Design Paradigms
- Relation between Data structures and Algorithms
- Importance and Applications
- Introduction to Algorithm Complexity
- Array Performance
- Creating an Array
- Moving Zeros
- Combining Two Lists
- Finding the Duplicates in a List
- Finding the Intersection of Two Lists
- Linked List Performance
- Create a Linked List
- Search a Linked List
- Removing a Node from a Linked List
- Finding a Linked List Cycle
4 LiveLab in this lesson — see the labs panel →
02 Week 2: Basic Data Structures 20 topics · 8 LiveLab +
- When to Use Stacks
- Creating a Stack
- Using Stacks to Reverse Strings
- Min Stack
- Stacked Parentheses
- When to Use Queues
- Creating a Queue
- Python's Built-In Queue Class
- Create a Queue Using Two Stacks
- When to Use Hash Tables
- Characters in a String
- Two Sum
- When to Use Trees
- Creating a Binary Tree
- Breadth-First Tree Traversal
- More Tree Traversals
- Invert a Binary Tree
- When to Use Graphs
- Creating a Graph
- Dijkstra's Algorithm
8 LiveLab in this lesson — see the labs panel →
03 Week 3: Algorithm Analysis 19 topics · 6 LiveLab +
- When to Use Recursion
- Analyzing Algorithms
- Constant Time
- Logarithmic Time
- Linear Time
- Log-Linear Time
- Quadratic Time
- Cubic Time
- Exponential Time
- Best-Case vs. Worst-Case Complexity
- Space Complexity
- Why Is This Important?
- Amortized Analysis
- Linear Search
- When to Use a Linear Search
- Binary Search
- When to Use a Binary Search
- Bubble Sort
- When to Use Bubble Sort
6 LiveLab in this lesson — see the labs panel →
04 Week 4: Sorting Algorithms, Queues, Deques, and Priority Queues 14 topics · 10 LiveLab +
- Insertion Sort
- When to Use Insertion Sort
- Merge Sort
- When to Use Merge Sort
- Selection Sort
- Shell Sort
- Quick Sort
- Heap Sort
- Linear Sorting
- The ADT Queue
- The ADT Deque
- The ADT Priority Queue
- Tree Concepts
- Traversals of a Tree
10 LiveLab in this lesson — see the labs panel →
05 Week 5: Java and MySQL 19 topics · 6 LiveLab +
- Java Interfaces for Trees
- Examples of Binary Trees
- The Nodes in a Binary Tree
- An Implementation of the ADT Binary Tree
- An Implementation of an Expression Tree
- General Trees
- Using a Binary Tree to Represent a General Tree
- Reprise: The ADT Heap
- Using an Array to Represent a Heap
- Adding an Entry
- Removing the Root
- Creating a Heap
- Heap Sort
- AVL Trees
- Red-Black Trees
- Some Examples and Terminology
- Paths
- Splay Trees
- Tries: A Structured Approach to Efficient Information Retrieval
6 LiveLab in this lesson — see the labs panel →
06 Week 6: Advanced Algorithms 17 topics · 4 LiveLab +
- Binary
- Bitwise Operators
- FizzBuzz
- Greatest Common Factor
- Euclid's Algorithm
- Primes
- Merge Sort
- Quick Sort
- Matrix Multiplication
- The Maxima-Set Problem
- The Greedy Method
- The Fractional Knapsack Problem
- Task Scheduling
- Text Compression and Huffman Coding
- Dynamic Programming
- Matrix Chain Multiplication
- Game Strategies
4 LiveLab in this lesson — see the labs panel →
Hands-On Labs Our edge
38 LiveLabs- Locating All the Zeros to the End of a List
- Combining Two Lists
- Creating a Linked List
- Finding a Linked List Cycle
- Tracking Stack's Biggest Number
- Using Stacked Parentheses
- Creating a Queue Using Two Stacks
- Counting All the Characters in a String
- Removing All Duplicate Words
- Using a Breadth-First Search
- Inverting a Binary Tree
- Implementing Dijkstra's Algorithm
- Iterating Through a List
- Printing the Numbers Recursively
- Calculating the Factorial of a Number Recursively
- Performing a Linear Search
- Performing a Binary Search
- Using a Bubble Sort Algorithm
- Using an Insertion Sort Algorithm
- Sorting an Array using Selection Sort
- Sorting an Array using Shell Sort
- Sorting an Array using Quick Sort
- Creating a Queue
- Creating a Deque
- Creating a Priority Queue
- Traversing a Binary Tree using Inorder Traversal
- Traversing a Binary Tree using Preorder Traversal
- Traversing a Binary Tree Using Postorder Traversal
- Counting the Nodes of a Binary Tree
- Computing the Height of a Binary Tree
- Adding Nodes to a Max Heap
- Removing the Maximum Value Node from a Max Heap
- Sorting an Array using Heap Sort
- Adding Nodes to an AVL Tree
- Implementing FizzBuzz
- Finding the Greatest Common Factor of Two Numbers
- Determining a Prime Number
- Sorting an Array using Merge Sort
Labs run in your browser — nothing to install.
02 / FAQs
Questions before you start
Prepare for Introduction to Data Structures for Programming
One-time payment. Full access for 1 year. Start with a free trial if you want to look around first.
- 1 year of full access
- 38 LiveLab included
- Certificate of completion
No credit card required