http://www.cs.usfca.edu/galles/visualization/
This project presents a comprehensive suite of ADSVs. From their webpage: "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."
This is one of the better and more exhaustive AV collections, covering roughly 40 major algorithms and data structures. They include: “List/Stacks/Queues”, “Sorting Algorithms”, “Trees (BST/AVL/B-Tree)”, “Heaps/Binomial Queues”, “Graph Algorithms”, “Hashing”, “Huffman Encoding”, and “Dynamic Programming”. Each of these groups further contains different algorithm visualizations like AV for Bucket Sort, AV for Open Hashing, AV for Prim’s Algorithm.
The user interface is generally intuitive, though there can be a little bit of confusion figuring out how to restart a given AV or change the input.. While the primary mode of presentation is a non-interactive animation, most of the AVs give the user a choice of step-through or animation at a chosen speed. Many of the AVs allow user input.
The biggest deficiency of the system is that it has no explanation text coming along with the visualization. This limits its use for self-study. But it is still useful for that, and should be very helpful as a lecture aid.
- Developers: David Galles (University of San Francisco)
- Last updated: 2006-04-05
Algorithms and Data Structures Implemented
- 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
- 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
Back to Toolkits |