(DSA-DP) Data Structures, Algorithms & Design patterns A collection of Data Structures, Algorithms and Design Patterns implemented from ground up with the aim of understanding them at a deeper level. Unit tests for every implementation can be run through the gradle :test task. Content References Algorithms Searching Binary Search Jump Search Linear Search Sorting Bubble Sort Insertion Sort Merge Sort Quick Sort Selection Sort Tree Inorder Traversal Postorder Traversal Preorder Traversal String Permutation In String Puzzle Clockwise Spiral Max Sub-Array Sum Data Structures Array Dynamic Array Static Array Disjoint Set Graph Adjacency List Graph Adjacency Matrix Graph Hash Table Hash Table Open Addressing Hash Table Separate Chaining Heap Binary Heap Linked List Singly Linked List Doubly Linked List Queue Queue Priority Queue Indexed Priority Queue Sparse Table Stack Tree Binary Search Tree AVL Tree Prefix Tree(Trie) Fenwick Tree Design Patterns Abstract Factory Adapter Command Composite Decorator Facade Factory Flyweight Iterator Observer Proxy Singleton State Strategy Template Chain of Responsibility