Browse Code Data structures and algorithms Data structure implementations Implement a doubly linked list class – Linked list part 2 Implement a matrix (2d array) – Array part 3 Implement a linked list class – Linked list part 1 Implement a sorted array – Array part 2 Re-implement an array class – Array part 1 Hash table implementation using array and linked list ‹ 1 2 Trees and variations Disjoint set – Union find – a forest Binary search tree with parent pointer – Binary tree 3 Trie implementation using hashmap – Trie part 3 Trie implementation using linked list – Trie part 2 Trie implementation using array – Trie part 1 Max-heap implementation – bubble up/down algorithm – Heap part 1 Min-heap implementation – bubble up/down algorithm – Heap part 2 Binary search tree implementation – Binary tree 2 Binary tree implementation – Binary tree 1 Graph theory Topological Sort using DFS and Kahn’s algorithm – Graph algorithm 2 Minimum Spanning Tree using Kruskal’s algorithm – Graph algorithm 1 Graph as adjacency matrix – Graph implementation 3 Graph as adjacency list – Graph implementation 1 Weighted graph as adjacency list – Graph implementation 2 Fundamental algorithms Quicksort – divide and conquer Heapsort (2 solutions) – iteration and recursion Merge sort – divide and conquer Bubble sort (2 solutions) – basic and optimized Insertion sort Selection sort Binary search Math Fibonacci number – find nth fibonacci 4 solutions Catalan number – find nth Catalan number 3 solutions Factorial number Prime number