Introduction
  • Introduction
  • Complexity theory basics
Data Structures Overview
  • Why to use data structures
  • Data structures and abstract data types
Installation and Environment Setup
  • Installing Java and Eclipse on Windows
  • Installing Java and Eclipse on Mac
Arrays
  • What are array data structures?
  • Arrays introduction - operations
  • Implementing arrays
  • ArraysLists in Java
  • Arrays Quiz
Interview Questions (Arrays)
  • Reversing an array in-place overview
  • Reversing an array in-place solution
  • Anagram problem overview
  • Anagram problem solution
  • Duplicates in an array problem overview
  • Duplicates in an array problem solution
Linked Lists
  • What are linked lists?
  • Linked list theory - operations
  • Linked list implementation I
  • Linked list implementation II
  • Linked list implementation III
  • Linked list implementation IV
  • Comparing linked lists and arrays
  • Practical (real-world) applications of linked lists
  • Linked Lists Quiz
Doubly Linked Lists
  • What are doubly linked lists?
  • Doubly linked list implementation
  • LinkedLists in Java
  • Running time comparison: linked lists and arrays
  • Doubly Linked Lists Quiz
Interview Questions (Linked List)
  • 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
Stacks
  • What are stacks?
  • Stacks in memory management (stacks and heaps )
  • Stack memory visualization
  • Stack implementation with linked list
  • Stack implementation with arrays
  • Dijkstra's interpreter introduction
  • Dijkstra's interpreter implementation
  • Stacks in Java
  • Practical (real-world) applications of stacks
  • Stacks Quiz
Queues
  • What are queues?
  • Queue implementation with linked list
  • Queues in Java
  • Queues Quiz
Stacks and Queues Interview Questions
  • Max in a stack problem overview
  • Max in a stack problem solution
  • Stack with queue overview
  • Stack with queue solution
  • Stack with queue solution - recursion
Binary Search Trees
  • Binary search trees theory - basics
  • 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 trees implementation I - Node and Tree classes
  • Binary search trees implementation II - insertion
  • Binary search tree implementation III - max, min and traversal
  • Stack memory visualization - finding max (min) items
  • Stack memory visualization - tree traversal
  • Binary search tree implementation IV - remove
  • Binary search tree implementation V - testing
  • Practical (real-world) applications of trees
  • Binary Search Trees Quiz
Trees Interview Questions
  • Compare binary trees overview
  • Compare binary trees solution
  • Compare binary trees minor update
  • k-th smallest element in a search tree overview
  • k-th smallest element in a search tree solution
  • Family age problem overview
  • Family age problem solution
Balanced Trees: 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