This repository contains a collection of data structures, algorithms, and system design examples, implemented in various programming languages. The goal of this repository is to provide a resource for developers to learn and practice fundamental computer science concepts.
- Data Structures and Algorithms
- System Design
This section contains implementations of various data structures, including:
- Linked lists
- Stacks
- Queues
- Trees
- Hash tables
- Graphs
- etc
Implementations of various algorithms, including:
- Sorting algorithms (bubble sort, quicksort, mergesort, etc.)
- Searching algorithms (linear search, binary search, etc.)
- Dynamic programming algorithms (Fibonacci sequence, shortest path, etc.)
- Graph algorithms (BFS, DFS, Dijkstra's algorithm, etc.)
Each implementation includes a description of the algorithm, its time and space complexity, and example usage.
This section contains examples of system design for various scenarios, including:
- Designing a web application
- Designing a distributed system
- Designing a scalable infrastructure
Each example includes a description of the problem, proposed solution, and relevant trade-offs.