This repository contains my journey of learning data structures and algorithms in JavaScript.
javascript-dsa/
├── data-structures/ # Implementation of various data structures
│ ├── arrays/ # Array implementations and operations
│ ├── linked-lists/ # Singly and doubly linked lists
│ ├── stacks/ # Stack implementation
│ ├── queues/ # Queue implementations
│ ├── trees/ # Binary trees, BST, AVL, etc.
│ ├── graphs/ # Graph representations and traversals
│ ├── hash-tables/ # Hash table implementations
│ └── heaps/ # Min/Max heap implementations
├── algorithms/ # Algorithm implementations
│ ├── sorting/ # Sorting algorithms (bubble, merge, quick, etc.)
│ ├── searching/ # Binary search, linear search, etc.
│ ├── recursion/ # Recursive problem solutions
│ ├── dynamic-programming/ # DP problems and solutions
│ └── greedy/ # Greedy algorithm problems
├── problem-solving-patterns/ # Common coding patterns
│ ├── frequency-counter/ # Frequency counter pattern problems
│ ├── multiple-pointers/ # Two pointer technique problems
│ └── sliding-window/ # Sliding window pattern problems
├── problems/ # LeetCode & other coding problems
│ ├── easy/ # Easy difficulty problems
│ ├── medium/ # Medium difficulty problems
│ └── hard/ # Hard difficulty problems
├── big-o-notation/ # Time & space complexity examples
└── utils/ # Helper functions and utilities
- Navigate to the specific topic you want to study
- Run the JavaScript files using Node.js:
node filename.js
- Arrays - Basic implementation
- Linked Lists - Basic implementation
- Stacks - Basic implementation
- Queues
- Trees
- Graphs
- Hash Tables
- Heaps
- Sorting Algorithms - Basic implementations
- Searching Algorithms
- Recursion
- Dynamic Programming
- Greedy Algorithms
- Frequency Counter - 5 problems completed
- Multiple Pointers - 5 problems completed
- Sliding Window - 4 problems completed
- Easy problems - In progress
- Medium problems
- Hard problems
-
Clone the repository:
git clone https://github.com/Logesh6767/javascript-dsa.git cd javascript-dsa -
Run any JavaScript file:
node path/to/file.js
-
Example:
node problem-solving-patterns/frequency-counter/problem-1-array.js
- Problem-solving patterns from coding bootcamps
- LeetCode problems
- Common interview questions
- Algorithm optimization techniques
- Big O Notation - Time and space complexity analysis
- Frequency Counter Pattern - Using objects/maps to count occurrences
- Multiple Pointers - Two-pointer technique for array problems
- Sliding Window - Window-based solutions for subarrays/substrings
- Data Structure Implementations - Building DSA from scratch
- Algorithm Analysis - Understanding trade-offs and optimizations
Happy coding! 🎯