Introduction
  • Introduction
  • Complexity theory basics
Data Structures Overview
  • Why to use data structures
  • Data structures and abstract data types
  • Data Structures and Abstract Data Types Quiz
Installation and Environment Setup
  • Installing Python and PyCharm on Windows
  • Installing Python and PyCharm on Mac
Data Structures - Arrays
  • What are array data structures?
  • Arrays introduction - operations
  • Arrays in Python
  • What are real arrays in Python?
  • Arrays Quiz
Interview Questions (Arrays)
  • Reversing an array in-place overview
  • Reversing an array in-place solution
  • Palindrome problem overview
  • Palindrome problem solution
  • Integer reversion problem overview
  • Integer reversion problem solution
  • Anagram problem overview
  • Anagram problem solution
  • Duplicates in an array problem overview
  • Duplicates in an array problem solution
Data Structures - Linked Lists
  • What are linked lists?
  • Linked list introduction - operations
  • Linked list implementation I
  • Linked list implementation II
  • Linked list implementation III
  • Comparing linked lists and arrays
  • Practical (real-world) applications of linked lists
  • Linked Lists Quiz
Data Structures - Doubly Linked Lists
  • What are doubly linked lists?
  • Doubly linked list implementation
  • Running time comparison: linked lists and arrays
  • Doubly Linked Lists Quiz
Interview Questions (Linked Lists)
  • Finding the middle node in a linked list overview
  • Finding the middle node in a linked list solution
  • Reverse a linked list in-place overview
  • Reverse a linked list in-place solution
Data Structures - Stacks
  • What are stacks?
  • Stacks in memory management (stacks and heaps )
  • Stack memory visualization
  • Stack implementation
  • Practical (real-world) applications of stacks
  • Stack Quiz
Data Structures - Queues
  • What are queues?
  • Queue implementation
  • Queues Quiz
Interview Questions (Stacks and Queues)
  • Max in a stack problem overview
  • Max in a stack problem solution
  • Queue with stack problem
  • Queue with stack problem solution
  • Queue with stack problem solution - recursion
Data Structures - Binary Search Trees
  • What are binary search trees?
  • Binary search trees theory - search, insert
  • Binary search trees theory - delete
  • Binary search trees theory - in-order traversal
  • Binary search trees theory - running times
  • Binary search tree implementation I
  • Binary Search Tree implementation II
  • Stack memory visualization - finding max (min) items
  • Stack memory visualization - tree traversal
  • Binary Search Tree implementation III
  • Practical (real-world) applications of trees
  • Binary Search Trees Quiz
Interview Questions (Binary Search Trees)
  • Compare binary trees overview
  • Compare binary trees solution
Data Structures - AVL Trees
  • Motivation behind balanced binary search trees
  • What are AVL trees?
  • AVL trees introduction - height
  • AVL trees introduction - rotations
  • AVL trees introduction - illustration
  • AVL tree implementation I
  • AVL tree implementation II
  • AVL tree implementation III
  • AVL tree implementation IV
  • AVL tree implementation V
  • Practical (real-world) applications of balanced binary search trees
  • AVL Trees Quiz
Data Structures - Red-Black Trees
  • What are red-black trees?
  • The logic behind red-black trees
  • Red-black trees - recoloring and rotation cases
  • Red-black tree illustrations
  • Red-black tree implementation I
  • Red-black tree implementation II
  • Red-black tree implementation III