User Guide
A complete walkthrough of the Algorithm Visualization Suite.
DSA Master Lab
The DSA Master Lab is an all-in-one environment for visualizing fundamental data structures and algorithms, with a unique focus on how they interact with memory.
Key Features
- Memory View: A simulated heap and stack show where data and pointers are stored. Watch
mallocfind free blocks and see pointers link scattered memory addresses. - Linked Lists: Create Singly, Doubly, Circular Singly, and Circular Doubly Linked Lists. Insert, delete, and search for nodes.
- Stacks & Queues: Visualize `push/pop` and `enqueue/dequeue` operations on both array-based and list-based implementations.
- Sorting Algorithms: Watch classic sorting algorithms like Bubble, Selection, Insertion, Quick, and Merge sort animate an array of bars.
- Searching Algorithms: See how Linear and Binary search scan through an array to find a target value.
How to Use
Use the tabs at the top to switch between modes (Memory, Lists, etc.). The control panel on the left will update with relevant actions. For example, in 'Lists' mode, you can select the list type and use the controls to add or remove nodes.
Tree Visualization
This lab is dedicated to binary trees, from the standard Binary Search Tree to more complex self-balancing variants.
Key Features
- Tree Strategies: Select from different tree types:
BST: Standard insertion. Left child is smaller, right child is larger.AVL Tree: A self-balancing BST that uses rotations to maintain a balance factor of -1, 0, or 1.Red-Black Tree: Another self-balancing BST that uses node coloring (red/black) and rotations to ensure the path from the root to any leaf has a similar number of black nodes.Complete Tree: A tree filled level by level, from left to right.
- Operations: Use the sidebar to
INSERT,DELETE, andSEARCHfor nodes. The tree will animate according to the selected strategy's rules. - Live Analysis: The panel on the sidebar provides real-time feedback on the tree's structural properties (Is Full, Is Perfect, Is Complete).
Graph Explorer
A powerful, open-ended sandbox for everything related to Graph Theory. Draw your own graphs and execute a vast library of algorithms.
How to Use
- Add Nodes: Click on any empty space on the canvas to add a new node (vertex).
- Connect Nodes: Switch to
Connectmode. Click and drag from one node to another to create an edge. - Move Nodes: Switch to
Movemode to drag nodes around the canvas. - Delete: Double-click on a node or edge to delete it.
- Run Algorithms: Select a starting node by clicking on it, then choose an algorithm from the library on the left. The visualization will begin automatically.
Features
- Graph Types: Toggle between
DirectedandUndirectedgraphs. - Weighted Edges: Toggle weights on/off. The adjacency matrix will update to allow weight inputs.
- Adjacency Matrix: A real-time matrix representation of your graph. You can even edit connections by changing values in the matrix.
- Algorithm Library: Includes traversals (BFS, DFS), shortest path (Dijkstra, Bellman-Ford), MST (Prim's, Kruskal's), and more.
Heap Architect
This lab explores the diverse world of heap data structures, which are specialized trees used to implement priority queues.
Key Features
- Multiple Heap Types: Use the dropdown to switch between different heap implementations, including standard Binary Heaps, d-ary Heaps, and advanced mergeable heaps like Binomial, Fibonacci, Leftist, and Skew heaps.
- Core Operations: Use the sidebar to
INSERTvalues,EXTRACTthe minimum element, andSEARCHfor a value. - Animated Visuals: The visualization is not a static tree. It accurately renders forest-based heaps (like Fibonacci) and animates the complex logic of operations like
extract-minandmeld.
Memory Architect
This is a focused educational tool designed to demonstrate the core concept of dynamic memory allocation for linked data structures.
How it Works
When you click Allocate New Node, the simulation requests memory from the "Heap". Unlike a simple array, the heap provides a block from a random available location. The visualization shows these scattered blocks and then draws the pointer connections that create a logical, sequential list out of physically separate memory chunks.
- Doubly Linked List: Shows nodes with both
nextandprevpointers. - Binary Tree: Shows nodes with
leftandrightchild pointers. - Code & Table View: The C++ code log and the data table update with each operation, showing the memory addresses and pointer values.