A comprehensive collection of Python implementations and explanations for fundamental data structures and algorithms, designed for computer science and mathematics students preparing for technical interviews and coursework. Also a deepdive into advanced Python through my personal notes of the book Fluent Python
- Dynamic Arrays & String Manipulation - Efficient approaches to array operations and string handling
- Linked Lists - Singly and doubly linked list implementations with traversal algorithms
- Hash Tables - Sets, maps, and collision resolution techniques
- Stacks & Queues - LIFO/FIFO implementations using arrays and deques
- Binary Trees & BSTs - Tree traversal (DFS/BFS), search operations, and balanced tree properties
- Heaps & Priority Queues - Min/max heap implementations and heap sort
- Recursion & Call Stacks - Base cases, recursive patterns for trees and linked lists
- Binary Search - Traditional and condition-based approaches
- Sorting Algorithms - Bubble sort, insertion sort, and quicksort implementations
- Graph Algorithms - DFS/BFS traversal with adjacency lists and matrices
- Two Pointers - Fast/slow pointers and left/right pointer techniques
- Sliding Window - Fixed and variable window size problems
- Hash Maps & Sets - Frequency counting and lookup optimizations
├── DSA-Basics Core concepts and implementations
├── dp-recursion Dynamic programming and recursive solutions
└── fluentpy.ipynb Fundamental concepts in advanced Python
Credited Solutions: Greg Hogg, NeetCode, Luciano Ramalho
Each file contains detailed explanations, time/space complexity analysis, and working code examples. The notes are structured to build understanding progressively from basic concepts to advanced problem-solving techniques.
These are personal study notes documenting my understanding of DSA concepts in Python. They include common patterns and tricks discovered while preparing for technical interviews, projects, and coursework.