Data Structures & Algorithms: My Learning Journey
Why This Repository Exists
Every developer reaches a point where they realize that knowing a framework isn't enough. The fundamentals — data structures and algorithms — are what separate someone who builds things from someone who builds things well. This repo is my study journal.
What's Inside
Data Structures
- Arrays & Strings — manipulation, sliding window, two-pointer techniques
- Linked Lists — singly linked, doubly linked, cycle detection
- Stacks & Queues — balanced parentheses, min stack, queue using stacks
- Trees — binary search trees, traversals (inorder, preorder, postorder), tree balancing
- Graphs — adjacency lists, BFS, DFS, shortest path algorithms
- Hash Maps — collision handling, frequency counting, two-sum patterns
Algorithms
- Sorting — bubble, merge, quick, heap sort with Big-O comparisons
- Searching — binary search, search in rotated array
- Dynamic Programming — memoization patterns, coin change, longest subsequence
- Recursion — backtracking, permutations, subsets
How I Organized It
Each topic gets its own directory with:
- A README explaining the concept
- Implementation files with commented code
- Test cases covering edge cases
- Complexity analysis (time and space)
My Study Approach
I followed a structured path:
- Understand the theory — read about the data structure, draw diagrams
- Implement from scratch — no libraries, just raw implementation
- Solve 5–10 problems — LeetCode/HackerRank problems using that structure
- Write notes — what patterns did I notice? What tripped me up?
Key Insight
The biggest revelation was that most interview problems are variations of the same ~15 patterns. Once you internalize patterns like sliding window, two pointers, BFS/DFS, and dynamic programming, you can decompose almost any problem.
Who This Is For
If you're a self-taught developer (like me) preparing for technical interviews, this repo might help. It's not a textbook — it's a working journal with real code and honest notes about what was confusing.