This project is a comprehensive collection of data structures implemented in Kotlin. It includes both fundamental and advanced data structures, making it a valuable resource for learning and practicing data structures and algorithms. The project is structured to help you implement a new data structure every day, starting from basic arrays to advanced structures like hash rings.
- Week 1: Basic Data Structures
- Week 2: Tree Data Structures
- Week 3: Graphs and Hashes
- Week 4: Advanced Data Structures and Applications
- Installation
- Usage
- Contributing
- License
- Array: Basic operations like insertion, deletion, and search.
- List: ArrayList and LinkedList implementation.
- Linked List: Singly linked list implementation.
- Doubly Linked List: Doubly linked list implementation.
- Stack: Stack data structure implementation.
- Queue: Queue data structure implementation.
- Circular Queue: Circular queue implementation.
- Tree: Basic concepts and terminology.
- Binary Tree: Binary tree and traversal methods (preorder, inorder, postorder).
- Binary Search Tree (BST): BST implementation with insertion, deletion, and search.
- AVL Tree: AVL tree implementation with rotations.
- Red-Black Tree: Red-Black tree concepts and properties.
- Segment Tree: Segment tree implementation for range queries.
- Fenwick Tree: Fenwick tree (Binary Indexed Tree) implementation.
- Graph: Basic concepts and representations (adjacency matrix, adjacency list).
- Graph Traversal: BFS and DFS algorithms.
- Shortest Path Algorithm: Dijkstra's algorithm implementation.
- Minimum Spanning Tree (MST): Kruskal's and Prim's algorithms.
- Hash Table: Hash table implementation and collision handling methods.
- Map and HashMap:
Map
interface andHashMap
implementation. - Trie: Trie data structure for efficient string search.
- Heap: Min heap and max heap implementations.
- Fibonacci Heap: Fibonacci heap implementation and applications.
- Binary Indexed Tree: Implementation and use cases.
- Dynamic Programming and Memoization: Techniques and example problems.
- Bit Masking: Techniques for efficient problem solving.
- Union-Find: Disjoint set data structure for union-find operations.
- Hash Ring: Hash ring data structure for distributed systems.
- Advanced Graph Algorithms: Floyd-Warshall and Bellman-Ford algorithms.
- String Algorithms: KMP and Rabin-Karp algorithms.
- Advanced Tree Algorithms: Tree DP and Lowest Common Ancestor (LCA).
To get started with this project, clone the repository to your local machine:
git clone https://github.com/yomni/kotlin-data-structure.git