DSA
Practicing Data Strcutures and Algorithms with coursenotes and Leetcode
Install / Use
/learn @Shaswat-G/DSAREADME
DSA: Data Structures & Algorithms Reference
A practical, code-driven guide to mastering Data Structures and Algorithms for interviews, competitive programming, and real-world engineering. This repository features clean Python implementations, concise notes, and curated problem patterns for each topic.
Repository Structure
DSA_Intro/— Foundations, arrays, and core conceptsArrays/,LinkedLists/,Queues/,Trees/,Heaps/,Hashing/,Sorting/,Recursion/,Graphs/— Each topic contains:notes.md: Theory, patterns, and interview tips*.py: Idiomatic Python implementations and sample problems
Low-Level-Design/— OOP and design patterns for system design interviewsPython/— Pythonic DSA idioms and best practicesassets/— Visuals and diagrams
Folder Guide
DSA_Intro/— Quickstart and foundational DSA concepts.Arrays/— Array operations, patterns, and interview problems.LinkedLists/— Singly, doubly, and circular linked list implementations and tricks.Queues/— Queue types, patterns, and real-world use cases.Trees/— Binary trees, BSTs, traversals, and tree algorithms.Heaps/— Min/max heaps, heap operations, and heap-based problems.Hashing/— Hash tables, collision resolution, and hashing patterns.Sorting/— Classic sorting algorithms and searching techniques.Recursion/— Recursion patterns, backtracking, and practice problems.Graphs/— Graph representations, BFS/DFS, and graph algorithms.Low-Level-Design/— OOP and design patterns for system design interviews.Python/— Pythonic DSA idioms, tips, and best practices.assets/— Visual diagrams and supporting images.
Getting Started
-
Clone the repository:
git clone https://github.com/yourusername/DSA.git cd DSA -
Explore by topic:
- Read
notes.mdin each folder for theory and interview patterns - Run and modify
*.pyfiles for hands-on practice
- Read
-
Use the curated LeetCode/interview problem lists in each notes file for targeted practice.
Sample Usage
from Heaps.heaps import MinHeap
h = MinHeap()
h.insert(5)
h.insert(2)
h.insert(8)
print(h.extract_min()) # 2
from Graphs.graphs import Graph
G = Graph(5)
G.add_edge(0, 1)
G.add_edge(1, 2)
print(G.bfs(0))
Navigation
- Start with
notes.mdfor theory and patterns - Dive into Python files for implementation details
- Use problem lists for focused LeetCode prep
- See
Low-Level-Design/for design/system rounds - See
Python/pythonic_notes.mdfor Python-specific tips
Topics Covered
- Arrays, Linked Lists, Stacks, Queues, Trees, BSTs, Heaps, Hashing, Sorting, Graphs, Recursion, LLD, and more
- Each topic: Clean code, edge cases, patterns, and real-world applications
Contributing
Pull requests and suggestions are welcome. Open an issue or submit a PR.
License
MIT
Ace your interviews. Master the patterns. Write clean code.
Related Skills
node-connect
352.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
