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