DSA Viz
Data Structures and Algorithms Visuals
Data structure or algorithm
Please choose an algorithm or data structure
Searching in a sorted array: Linear and binary search
Comparison-based sorting algorithms
(Bubble-, Selection-, Insertion-, Shell-, Merge-, Quicksort)
Stack: Array implementation
Stack: Linked list implementation
Queue: Array implementation
Queue: Linked list implementation
BST: Binary search tree
AVL tree
Red-black tree
2-3 tree
Separate chaining hash table
Open addressing hash table
Binary heap
DFS: Depth-first search
BFS: Breadth-first search
Dijkstra's shortest path search
Prim's MST (minimum spanning tree) algorithm
Kruskal's MST (minimum spanning tree) algorithm
All algorithms and data structures below here:
Searching in a sorted array: Linear and binary search
Comparison-based sorting algorithms
(Bubble-, Selection-, Insertion-, Shell-, Merge-, Quicksort)
Bucket Sort
Counting Sort
Radix Sort
Heap Sort
Stack: Array implementation
Stack: Linked list implementation
Queue: Array implementation
Queue: Linked list implementation
Lists: Array implementation (only available in the old Java version)
Lists: Linked list implementation (only available in the old Java version)
BST: Binary search tree
AVL tree
Red-black tree
Splay tree
Trie (prefix tree)
Radix tree (compact Trie)
Ternary search tree (Trie with BST of children)
B-tree
B+ tree
Separate chaining hash table
Open addressing hash table
Open addressing hash table, using buckets
Binary heap
Binomial heap
Fibonacci heap
Leftist heap
Skew heap
DFS: Depth-first search
BFS: Breadth-first search
Dijkstra's shortest path search
Prim's MST (minimum spanning tree) algorithm
Kruskal's MST (minimum spanning tree) algorithm
Connected components
Topological sort (using in-degree array)
Topological sort (using DFS)
Floyd-Warshall (all pairs shortest paths)
Factorial
Reversing a string
N-queens problem
Calculating Fibonacci numbers
Coin change problem
Longest common subsequence
2D rotation and scale matrices
2D rotation and translation matrices
2D changing coordinate systems
3D rotation and scale matrices
3D changing coordinate systems
Disjoint set (union-find)
Huffman coding (only available in the old Java version)
Pick a data structure or algorithm above to get started.