Welcome
  • How to get the most out of this course
  • Where to get the code
  • Link to Github Repo
  • Help Setting Up intelliJ
Arrays
  • What's so special about Arrays?
  • Data Structures vs APIs
  • Three things you need to know about Arrays
  • The Array's Killer Feature
  • How to insert into an Array
  • How to delete an Array element
  • Deleting the Last Element
  • How to resize Arrays dynamically
  • Lab: Let's build a Dynamic Array from scratch
  • What about error handling?
  • What you need to know for the interview
Linked Lists
  • What is a Linked List?
  • What makes a Linked List different from an Array?
  • Add Front
  • Get First / Get Last
  • Add back
  • Size
  • Clear
  • Delete With Value
  • Double Linked Lists
  • What you need to know for the interview
  • Super Common Interview Question
Big O Notation
  • What is Big O Notation?
  • Must know Big O runtimes
  • The Big O Cheat Sheet
  • Lab: Testing ourselves on our Big O Notation
  • What you need to know for the interview
Stacks & Queues
  • What are Stacks and Queues?
  • What is the Stack and Queue killer feature?
  • How to push and pop onto a Stack
  • How to add and remove from a Queue
  • Visualizing adding to a Queue
  • Runtime characteristics of Stacks and Queues
  • What you need to know for the interview
Hash Tables
  • What so great about Hash Tables?
  • How does hashing work?
  • How do you convert a hash into its index?
  • Beep beep! How to deal with collisions
  • Runtime characteristics of Hash Tables
  • Lab: How to build a Hash Table from scratch
  • What you need to know for the interview
Binary Trees
  • What is a Binary Tree?
  • How does find work?
  • How do you insert into a Binary Search Tree?
  • How do you find the minimum in a Binary Search Tree?
  • How does delete work in a Binary Search Tree?
  • Links that help
  • What are some different ways you can traverse Binary Trees?
  • Runtime characteristic of Binary Search Tree
  • What you need to know for the interview
Binary Heaps
  • What are Binary Heaps and what are they good for?
  • How do Binary Heaps work?
  • How do you insert into a Binary Heap?
  • How do you extract the max?
  • Larger Nodes Near the Bottom
  • What makes the Binary Heap so amazing?
  • Lab: How to build a Binary Heap from scratch
  • Runtime characteristics of Binary Heap
  • What you need to know for the interview
AVL & Red-Black Trees
  • What is an AVL Tree?
  • AVL Tree in code
  • AVL Delete
  • What you need to know about AVL for the interview
  • What is the Red-Black Tree?
  • AVL Red-Black Tree Interview Questions
  • What you need to know about Red-Black for your interview
Fibonacci Series & Memoization
  • Houston we have a problem
  • What's a Fibonacci series?
  • What's memoization and how can it help?
  • Lab: How to build a memoized Fibonacci series from scratch
  • Lab: Real Life Recursion
  • What you need to know for the interview
Sorting Algorithms
  • What is the Bubble Sort?
  • Bubble Sort in code
  • Runtime characteristic of Bubble Sort
  • What is Merge Sort?
  • Merge Sort in code
  • Runtime characteristic of Merge Sort
  • What is Quicksort?
  • Quicksort in code
  • Runtime characteristic of Quicksort
  • What you need to know for the interview
Graphs
  • What exactly are graphs?
  • What does the graph data structure look like?