Files
DSA-reference/readme.md
2025-11-13 20:43:51 -05:00

106 lines
2.7 KiB
Markdown

# Data Structures and Algorithms Reference
This repository is my personal reference for data structures and algorithms. It contains implementations of standard data structures and algorithms in a variety of programming languages, along with explanations, examples, and analysis.
This isn't a study aid, it's a cheat sheet for quick reference during interviews and while working on projects. The point of this project is to create an all in one reference with the assumption that the reader has already seen all these data structures and algorithms, and just wants to refresh their memory.
That said, I'm making it as a way for *me* to study data structures and algorithms, so it will aid my studying quite a bit :)
This might end up as a reference book/blog posts in the future. I might also do another one on system design and architecture targeted at a more senior audience.
## Table of Contents
- [Languages](#languages)
- [Data Structures](#data-structures)
- [Algorithms](#algorithms)
- [License](#license)
- [References](#references)
## Languages
The project will include examples in the following languages:
- C
- C++
- Java
- Kotlin
- Python
- Rust
- Typescript
## Data Structures
The project will include examples of the following data structures:
- Arrays
- Static Array
- Dynamic Array
- Linked List
- Singly Linked List
- Doubly Linked List
- Circular Linked List
- Stack (LIFO)
- Queue (FIFO) and Deque (Doubly Ended Queue)
- Hash Table
- KV Hash Table
- Collision Detection
- Trees
- Binary Tree
- Binary Search Tree
- AVL Tree (Self-Balancing)
- Red-Black Tree (Self-Balancing)
- B-Tree (Self-Balancing)
- Trie (Prefix Tree)
- Tree algorithms
- Graphs
- Adjacency List
- Adjacency Matrix
- Directed Graphs
- Weighted Graphs
- Adjacency List/Matrix
- Disjoint Set (Union-Find)
## Algorithms
- Sorting
- Bubble Sort (Maybe)
- Selection Sort (Maybe)
- Insertion Sort
- Merge Sort
- Quick Sort
- Heap Sort
- Searching Algorithms
- Linear Search
- Binary Search
- Graph Traversal
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
- Dijkstra's Algorithm
- Bellman-Ford Algorithm
- Floyd-Warshall Algorithm
- Kruskal's Algorithm
- Prim's Algorithm
- Minimum Spanning Tree (MST)
- Recursion and Backtracking
- Dynamic Programming
- Memoization
- Tabulation
- Greedy Algorithms
- Fractional Knapsack Problem
- Activity Selection Problem
- Huffman Coding
- Sieve of Eratosthenes (Prime Number Generation)
- Euclidean Algorithm (Greatest Common Divisor)
- String Algorithms
- KMP Algorithm
- Rabin-Karp Algorithm
- Bit Manipulation
## License
All rights reserved. (Might open it up in the future)
## References
None yet