A comprehensive repository documenting my journey learning data structures as part of my data science education. This repository serves as both a learning resource and a reference guide for fundamental data structure implementations and problem-solving.
This repository is designed to:
- Track my learning progress in understanding core data structures
- Document implementations of various data structures from scratch
- Store problem solutions from LeetCode and other coding platforms
- Build strong fundamentals essential for data science and software engineering
- Students learning data science with a focus on algorithmic thinking
- Self-learners wanting to understand data structures deeply
- Interview prep seekers preparing for technical interviews
- Anyone building a solid foundation in computer science fundamentals
data-structures/
├── README.md # You are here!
├── linked-list/ # Linked List implementations
│ ├── node.py # Node class definition
│ ├── linked_list.py # Linked List implementation
│ └── exercises/ # LeetCode and coding problems
│ └── linked_list_cycle.py # Problem solutions
├── stack/ # Stack implementations
│ ├── node.py # Node class definition
│ ├── stack.py # Stack implementation
│ └── exercises/ # LeetCode and coding problems
│ └── [solutions here]
└── [More data structures to come...]
Each data structure folder contains:
- Core Implementation: Clean, well-documented Python implementations
- Node/Class Definitions: Building blocks for the data structure
- Exercises Folder: Solutions to LeetCode problems and coding challenges that use this data structure
The exercises/ subfolder in each data structure directory contains:
- LeetCode solutions sorted by problem difficulty
- Problem descriptions and approach explanations
- Multiple solutions showcasing different approaches
- Time and space complexity analysis
- Linked List
- Stack
- Queue
- Binary Tree
- Graph
- Hash Table
- Heap
- And more...
- Explore implementations in each data structure folder
- Study the core files to understand how each data structure works
- Review exercises to see practical applications
- Use as reference during interview prep or coursework
- Try the problems yourself before looking at solutions
This repository follows this learning methodology:
- Understand the theoretical concepts
- Implement the data structure from scratch
- Practice with real coding problems
- Document solutions with explanations
- Iterate and refine understanding
- LeetCode: https://leetcode.com
- GeeksforGeeks: https://www.geeksforgeeks.org
- Abdul Bari's Data Structures Course
- Python Official Documentation
To run the implementations:
cd data-structures/
python3 linked-list/linked_list.py
python3 stack/stack.pyTrack your progress through the data structures journey:
- Phase 1: Linear Data Structures (Linked List, Stack, Queue)
- Phase 2: Tree Data Structures (Binary Tree, BST, Balanced Trees)
- Phase 3: Graph Data Structures (Graph, Advanced Algorithms)
- Phase 4: Applications & Optimization
Strong knowledge of data structures is crucial for:
- Software engineering interviews at top tech companies
- Efficient algorithm design and implementation
- Understanding time/space complexity trade-offs
- Building performant applications in data science
- Foundation for advanced algorithms and system design
Last Updated: March 2026
Status: 🔄 Ongoing Learning Project
Happy Learning! 🎓