A comprehensive Data Structures & Algorithms (DSA) project that combines interactive visualizations with a learning platform.
This repo is designed for learners, students, and enthusiasts who want to see algorithms in action and understand the theory behind them.
- A learning hub for everything in DSA:
- Basics of TypeScript & typing
- Linear Data Structures (arrays, stacks, queues, linked lists)
- Non-Linear Data Structures (trees, heaps, graphs)
- Traversals & Recursion
- Searching & Sorting algorithms
- Advanced concepts (optimization, complexity analysis, etc.)
- An interactive sorting visualizer built with React + TypeScript + Vite + TailwindCSS.
- Supports multiple sorting algorithms.
- Allows experimenting with different array sizes and speeds.
- Great for hands-on learning of sorting techniques.
├── advanced_concepts # Advanced DSA topics (e.g., DP, greedy, backtracking)
├── AlgosLab # React + Vite application
│ └── src
│ ├── components # Reusable UI components
│ ├── pages # Application pages (Sorta, AlgoLearn)
│ ├── topics # DSA topics content
│ └── utils # Utility functions/helpers
├── linear_data_structures
│ └── linked_lists # Implementations of linked lists
├── nonLinear_data_structures
│ ├── graphs # Graph data structures & algorithms
│ ├── heaps # Heap implementations
│ └── trees
│ └── tree_traversal # Tree traversals (DFS, BFS, etc.)
├── search # Searching algorithms
├── sort # Sorting algorithms
└── sort_visualizer # Sorting visualization tool
- Frontend: React, TypeScript, Vite, Tailwind CSS, PostCSS
- Algorithms & DSA: Implemented in TypeScript & JavaScript
- Visualization: Custom components for animations & interactions
git clone https://github.com/yourusername/algos-project.git
cd algos-project
npm install
npm run dev
npm run build
-
Visit AlgoLearn to explore explanations and code examples of different DSA topics.
-
Use Sorta to visualize sorting algorithms with adjustable array sizes and speeds.
This project will help you:
-
Master the fundamentals of Data Structures & Algorithms.
-
Understand time and space complexity through practical demos.
-
Bridge the gap between theory and real-world application.
-
Improve TypeScript and React development skills.
Contributions are welcome!
-
Fork the repo
-
Create your feature branch (git checkout -b feature/my-feature)
-
Commit your changes (git commit -m 'Add new feature')
-
Push to the branch (git push origin feature/my-feature)
-
Open a Pull Request