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

Any questions?
Check out the FAQs

Still have unanswered questions and need to get in touch?

Contact Us Now

Related Courses

All Courses
scroll to top