Data Structure Visualizations

The best way to understand complex data structures is to see them in action. We've developed interactive animations for a variety of data structures and algorithms. Our visualization tool is written in Java using Swing, and runs well under OS X, most flavors of Linux, and most flavors of Windows.

Currently, we have visualizations for the following data structures and algorithms:

- Stacks (both array and linked list implementations)
- Queues (both array and linked list implementations)
- Lists (both array and linked list implementations. Visitors are also demonstrated)
- Binary Search Trees
- AVL Trees
- B-Trees
- Heaps
- Binomial Queues
- Hash Tables
- Separate Chaining (Open Hashing, Closed Addressing)
- Closed Hashing (Open Addressing) -- including linear probling, quadratic probing, and double hashing.
- Both integers and strings as keys (with a nice visualziation of elfhash for strings)

- Sorting Algorithms
- Bubble Sort
- Selection Sort
- Insertion Sort
- Shell Sort
- Merge Sort
- Quck Sort
- Heap Sort
- Counting Sort
- Bucket Sort
- Radix Sort

- Huffman Coding
- Graph Alogrithms
- Dijkstra's Algorithm
- Prim's Algorithm
- Kruskals Algorithm (including a visualization of disjoint sets)
- Breadth-First Search
- Depth-First Search
- Connected Components
- Topological Sort
- Floyd-Warshall (all pairs shortest paths)

- Dynamic Programming
- Calculating nth Fibonacci number
- Making Change