Skip to content

alan-chala/data-structures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 

Repository files navigation

Data Structures Learning Journey 📚

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.

🎯 Purpose

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

👥 Who This Is For

  • 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

📁 Repository Structure

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...]

📝 What's Inside Each Folder

Data Structure Folders

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

Exercises Folder

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

🗂️ Data Structures Covered (or planned)

  • Linked List
  • Stack
  • Queue
  • Binary Tree
  • Graph
  • Hash Table
  • Heap
  • And more...

🚀 How to Use This Repository

  1. Explore implementations in each data structure folder
  2. Study the core files to understand how each data structure works
  3. Review exercises to see practical applications
  4. Use as reference during interview prep or coursework
  5. Try the problems yourself before looking at solutions

💡 Learning Approach

This repository follows this learning methodology:

  1. Understand the theoretical concepts
  2. Implement the data structure from scratch
  3. Practice with real coding problems
  4. Document solutions with explanations
  5. Iterate and refine understanding

📚 Resources & References

⚡ Quick Start

To run the implementations:

cd data-structures/
python3 linked-list/linked_list.py
python3 stack/stack.py

📊 Learning Progress

Track 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

💪 Why Data Structures Matter

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! 🎓

Contributors

Languages