/kotlin-data-structure

자료구조 공부하기 with kotlin

Primary LanguageKotlinMIT LicenseMIT

Kotlin Data Structures

Introduction

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.

Table of Contents

  1. Week 1: Basic Data Structures
  2. Week 2: Tree Data Structures
  3. Week 3: Graphs and Hashes
  4. Week 4: Advanced Data Structures and Applications
  5. Installation
  6. Usage
  7. Contributing
  8. License

Week 1: Basic Data Structures

  1. Array: Basic operations like insertion, deletion, and search.
  2. List: ArrayList and LinkedList implementation.
  3. Linked List: Singly linked list implementation.
  4. Doubly Linked List: Doubly linked list implementation.
  5. Stack: Stack data structure implementation.
  6. Queue: Queue data structure implementation.
  7. Circular Queue: Circular queue implementation.

Week 2: Tree Data Structures

  1. Tree: Basic concepts and terminology.
  2. Binary Tree: Binary tree and traversal methods (preorder, inorder, postorder).
  3. Binary Search Tree (BST): BST implementation with insertion, deletion, and search.
  4. AVL Tree: AVL tree implementation with rotations.
  5. Red-Black Tree: Red-Black tree concepts and properties.
  6. Segment Tree: Segment tree implementation for range queries.
  7. Fenwick Tree: Fenwick tree (Binary Indexed Tree) implementation.

Week 3: Graphs and Hashes

  1. Graph: Basic concepts and representations (adjacency matrix, adjacency list).
  2. Graph Traversal: BFS and DFS algorithms.
  3. Shortest Path Algorithm: Dijkstra's algorithm implementation.
  4. Minimum Spanning Tree (MST): Kruskal's and Prim's algorithms.
  5. Hash Table: Hash table implementation and collision handling methods.
  6. Map and HashMap: Map interface and HashMap implementation.
  7. Trie: Trie data structure for efficient string search.

Week 4: Advanced Data Structures and Applications

  1. Heap: Min heap and max heap implementations.
  2. Fibonacci Heap: Fibonacci heap implementation and applications.
  3. Binary Indexed Tree: Implementation and use cases.
  4. Dynamic Programming and Memoization: Techniques and example problems.
  5. Bit Masking: Techniques for efficient problem solving.
  6. Union-Find: Disjoint set data structure for union-find operations.
  7. Hash Ring: Hash ring data structure for distributed systems.
  8. Advanced Graph Algorithms: Floyd-Warshall and Bellman-Ford algorithms.
  9. String Algorithms: KMP and Rabin-Karp algorithms.
  10. Advanced Tree Algorithms: Tree DP and Lowest Common Ancestor (LCA).

Installation

To get started with this project, clone the repository to your local machine:

git clone https://github.com/yomni/kotlin-data-structure.git