Introduction to Data Structures for Programming

(CTU-CD230.AE1) / ISBN : 978-1-64459-832-0
Lessons
Lab
TestPrep
AI Tutor (Add-on)
Get A Free Trial

Skills You’ll Get

1

Week 1: Introduction to Data Structures and Algorithms

  • 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
2

Week 2: Basic Data Structures

  • 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
3

Week 3: Algorithm Analysis

  • 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
4

Week 4: Sorting Algorithms, Queues, Deques, and Priority Queues

  • 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
5

Week 5: Java and MySQL

  • 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

Week 6: Advanced Algorithms

  • 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

1

Week 1: Introduction to Data Structures and Algorithms

  • Locating All the Zeros to the End of a List
  • Combining Two Lists
  • Creating a Linked List
  • Finding a Linked List Cycle
2

Week 2: Basic Data Structures

  • 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
3

Week 3: Algorithm Analysis

  • 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
4

Week 4: Sorting Algorithms, Queues, Deques, and Priority Queues

  • 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
5

Week 5: Java and MySQL

  • 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
6

Week 6: Advanced Algorithms

  • Implementing FizzBuzz
  • Finding the Greatest Common Factor of Two Numbers
  • Determining a Prime Number
  • Sorting an Array using Merge Sort

Related Courses

All Courses
scroll to top