An educational tool built entirely in Python using Streamlit that enables users to understand and experiment with core data structures through real-time visual feedback.
- ๐ฅ Stack (LIFO) - Last In, First Out operations
- ๐ถโโ๏ธ Queue (FIFO) - First In, First Out operations
- ๐ Linked List - Singly and Doubly linked lists
- ๐ณ Binary Tree - Binary Search Tree with traversals
- ๐๏ธ Hash Table - Key-Value storage with collision handling
- ๐๏ธ Heap - Min/Max Heap with priority queue operations
- ๐ธ๏ธ Graph - Directed/Undirected graphs with traversals
- Perform operations like push, pop, enqueue, dequeue, insert, delete, traverse
- Input values dynamically and see changes instantly
- Real-time visual updates with every operation
- Simple animations using Python's time.sleep()
- Visual updates rendered on every operation
- Clear understanding of data structure behavior
- Displays matching pseudocode alongside each operation
- Helps learners grasp both logic and implementation flow
- Operation history tracking for learning progress
- Entirely built in Python with Streamlit widgets
- Buttons, sliders, and expandable code sections
- Clean, intuitive user interface
- Python 3.8+
- Streamlit - Web app framework
- Matplotlib - Visualization and plotting
- Custom Python Classes - Data structure implementations
- Python 3.8 or higher
- pip package manager
-
Clone or download the project
git clone <repository-url> cd VISUALIZER
-
Install dependencies
pip install -r requirements.txt
-
Run the application
streamlit run main.py
-
Open in browser
- The app will automatically open in your default browser
- If not, navigate to
http://localhost:8501
- Launch the application using
streamlit run main.py - Choose a data structure from the sidebar navigation
- Perform operations using the interactive controls
- Watch the visualization update in real-time
- Study the pseudocode to understand algorithms
- Track your progress through operation history
- Push: Add element to top of stack
- Pop: Remove element from top of stack
- Peek: View top element without removing
- Clear: Empty the entire stack
- Enqueue: Add element to rear of queue
- Dequeue: Remove element from front of queue
- Front: View front element without removing
- Rear: View rear element without removing
- Clear: Empty the entire queue
- Insert at Beginning: Add node at the start
- Insert at End: Add node at the end
- Insert at Position: Add node at specific position
- Delete: Remove node with specific value
- Search: Find position of a value
- Clear: Remove all nodes
- Insert: Add node maintaining BST property
- Delete: Remove node from tree
- Search: Find if value exists in tree
- Traversals: Inorder, Preorder, Postorder
- Clear: Remove all nodes
- Insert/Update: Add or update key-value pairs
- Get: Retrieve value by key
- Delete: Remove key-value pair
- Contains: Check if key exists
- Clear: Remove all entries
- Insert: Add element maintaining heap property
- Extract: Remove root element (min/max)
- Peek: View root without removing
- Delete: Remove specific value
- Build Heap: Create heap from array
- Heap Sort: Sort elements using heap
- Add Vertex: Add new node to graph
- Add Edge: Connect two vertices
- Remove Vertex/Edge: Delete nodes or connections
- BFS/DFS: Breadth-first and depth-first traversals
- Path Finding: Check if path exists between vertices
- Clear: Remove entire graph
VISUALIZER/
โโโ main.py # Main Streamlit application
โโโ requirements.txt # Python dependencies
โโโ README.md # Project documentation
โโโ data_structures/ # Data structure implementations
โ โโโ stack.py # Stack class
โ โโโ queue.py # Queue class
โ โโโ linked_list.py # Linked List classes
โ โโโ binary_tree.py # Binary Tree class
โ โโโ hash_table.py # Hash Table class
โ โโโ heap.py # Heap class
โ โโโ graph.py # Graph class
โโโ visualizers/ # Visualization components
โ โโโ stack_visualizer.py # Stack visualization
โ โโโ queue_visualizer.py # Queue visualization
โ โโโ linked_list_visualizer.py # Linked List visualization
โ โโโ binary_tree_visualizer.py # Binary Tree visualization
โ โโโ hash_table_visualizer.py # Hash Table visualization
โ โโโ heap_visualizer.py # Heap visualization
โ โโโ graph_visualizer.py # Graph visualization
โโโ utils/ # Utility modules
โโโ pseudocode.py # Algorithm pseudocode definitions
- Learn fundamental data structures visually
- Understand algorithm implementations
- Practice for computer science courses
- Prepare for coding interviews
- Teaching aid for data structure concepts
- Interactive classroom demonstrations
- Visual explanation of abstract concepts
- Engaging learning experience
- Practice common data structure operations
- Understand time and space complexity
- Review algorithm implementations
- Build confidence with visual feedback
- Create implementation in
data_structures/ - Add pseudocode to
utils/pseudocode.py - Create visualizer in
visualizers/ - Update main navigation in
main.py
- Edit matplotlib plotting code in visualizer files
- Adjust colors, sizes, and layouts
- Add new animation effects
- Customize user interface elements
Contributions are welcome! Please feel free to:
- Report bugs and issues
- Suggest new features
- Submit pull requests
- Improve documentation
This project is open source and available under the MIT License.
- Built with Streamlit for the amazing web app framework
- Matplotlib for powerful visualization capabilities
- Python community for excellent libraries and tools
Start exploring data structures today! ๐
Select a data structure from the sidebar and begin your interactive learning journey!
