Browse Code Data structures and algorithms Data structure implementations Implement an array class – Array part 1 Implement a 2d array (matrix) – Array part 3 Priority queue implementation using a sorted array – Priority queue 2 Circular queue implementation using an array – Queue part 2 Priority queue implementation using a heap – recursive solution Priority queue implementation using a heap – iterative solution Priority queue implementation using an array – Priority queue 1 Queue implementation using a linked list – Queue part 1 Implement a stack class using a linked list – Stack part 2 1 2 › Trees and variations Min-heap implementation – bubble up/down algorithm – Heap part 2 Max-heap implementation – bubble up/down algorithm – Heap part 1 Disjoint set – Union by rank implementation Suffix trie implementation using hashmap – Trie variation 2 Suffix trie implementation using array – Trie variation 1 Trie implementation using hashmap – Trie part 3 Trie implementation using linked list – Trie part 2 Trie implementation using array – Trie part 1 Binary search tree with parent pointer – Binary tree 3 1 2 › Graph theory Topological Sort using DFS and Kahn’s algorithm – Graph algorithm 2 Minimum Spanning Tree using Kruskal’s algorithm – Graph algorithm 1 Shortest path using Dijkstra’s algorithm – Graph algorithm 3 Graph as adjacency matrix – Graph implementation 3 Graph as adjacency list – Graph implementation 1 Weighted graph as adjacency list – Graph implementation 2 Fundamental algorithms Selection sort – code and visuals Insertion sort – code and visuals Binary search (2 solutions) – iteration and recursion Quicksort – divide and conquer Merge sort – divide and conquer Bubble sort (2 solutions) – basic and optimized Heapsort (2 solutions) – iteration and recursion Math Factorial number – calculate factorials 2 solutions Prime number – check a number is prime number 3 solutions Fibonacci number – find nth fibonacci 4 solutions Catalan number – find nth Catalan number 3 solutions