Demos
Here is a list of interactive demos I created to help visualize and understand various data structures and algorithms. They are listed in the order they appear in this coursebook.
- Dynamic Array
- Linear Search
- Selection Sort
- Bag (Urn) Data Structure
- Binary Search
- Binary Search (Recursive)
- Sorted Array
- Leaderboard
- Singly Linked List
- Doubly Linked List
- Sparse List
- MaxArrayList
- MaxLinkedList
- ArrayStack
- LinkedStack
- Valid Parentheses
- Evaluate RPN
- Min Stack
- Monotonic Stack
- LinkedQueue
- ArrayQueue
- Round-Robin Scheduling
- The Josephus Problem
- Moving Average
- Build a Queue from Two Stacks
- LinkedDeque
- ArrayDeque
- MaxQueue
- Sliding Window Maximum
- Selection Sort (Largest to the End)
- Bubble Sort
- Insertion Sort
- Insertion Sort with Binary Search
- Cocktail Shaker Sort
- Merge Two Sorted Arrays
- In-Place Merge
- Merge Sort (Bottom-Up)
- Merge Sort (Recursive)
- Union of Two Sorted Arrays
- Merge k Sorted Arrays
- Sorting Algorithms Compared
- Maze Search with Recursion
- Maze Search with a Stack
- Maze Search with a Queue
- Maze Search: Stack and Queue
- Reachable Cells
- Maze Distance
- Maze Path
- LinkedSet
- ArraySet
- Move-to-Front Heuristic
- Transpose Heuristic
- Set Search Heuristics Compared
- Set Union
- Set Intersection
- Set Difference
- Set Iterator
- Modifying While Iterating
- SparseList Iterator
- LinkedMap
- ArrayMap
- SortedArrayMap
- Tree Size, Height, and Depth
- Pre-order Traversal with Recursion
- In-order Traversal with Recursion
- Post-order Traversal with Recursion
- Level-order Traversal
- Iterative Pre-order Traversal
- Iterative In-order Traversal
- Iterative Post-order Traversal
- Searching a Binary Search Tree
- Adding to a Binary Search Tree
- Removing from a Binary Search Tree
- Iterating over a Binary Search Tree
- Tree Height and Add Order
- Binary Search Tree Playground
- Validating a Binary Search Tree
- The k-th Smallest Value
- AVL Rotations
- The AVL Tree
- TreeMap
- Ordered Queries on a TreeMap
- Order Statistics on a TreeMap
- LinkedHeap
- ArrayHeap