Algorithms & Data Structures I

Implementations and exercises for Algo I 2022/2023 course at Sapienza Universita' di Roma (Computer Science Bachelor's degree) in Rust 🦀, cos it's more fun!

Table of contents

The content in the checked boxes was summarized / implemented / completed. If you need explanations on some content, just open an issue, and I'll be happy to help 😄.

(Completed in Rust 56 out of 149 ~ 38%)

  1. Introduction
  2. Big O notation
    1. Big O
    2. Omega
    3. Teta
    4. Formulas
    5. Ex 1
    6. Ex 2
  3. Cost
    1. Formulas
    2. Ex 1
    3. Ex 2
    4. Ex 3
  4. Searching Algorithms
    1. Linear Search
    2. Binary Search (iterative)
    3. Ex 1 (TODO: test again)
  5. Recursion
    1. Ex 1
    2. Ex 2
    3. Ex 3
    4. Ex 4
    5. Ex 5
    6. Ex 6
    7. Ex 7 (Hanoi)
    8. Linear Search
    9. Binary Search
    10. Factorial
    11. Fibonacci
    12. Binomial
    13. GCD
  6. Let's just not... pt.1
    1. Iterative
    2. Substitution
    3. Tree
    4. Main
  7. Let's just not... pt.2
  8. Naive Sorting
    1. Insertion Sort
    2. Selection Sort
    3. Bubble Sort
    4. Ex 1
    5. Ex 2
  9. Merge Sort
    1. Merge
    2. Merge Sort
    3. Ex 1
    4. Ex 2
    5. Ex 3
    6. Ex 4
    7. Ex 5
  10. Quick Sort
    1. Quick Sort
    2. Ex 1
    3. Ex 2
  11. Heap Sort
    1. Heap
    2. Ex 1
    3. Ex 2
    4. Ex 3
  12. Linear Sorting
    1. Counting Sort
    2. Stable Counting Sort
    3. Bucket Sort
    4. Ex 1
    5. Ex 2
    6. Ex 3
  13. Linked List
    1. Array Operations
    2. Linked List
    3. Double Linked List
    4. Ex 1
    5. Ex 2
    6. Ex 3
  14. Queue & Stack
    1. Queue
    2. Stack
    3. Queue on LinkedList
    4. Stack on LinkedList
    5. Priority Queue
    6. Ex 1
    7. Ex 2
  15. Linked List exercises
    1. Ex 1
    2. Ex 2
    3. Ex 3
    4. Ex 4
    5. Ex 5
    6. Ex 6
    7. Ex 7
    8. Ex 8
    9. Ex 9
    10. Ex 10
  16. Tree
    1. Graph Theory
    2. TreeNode (Tree built with Records)
    3. Positional Binary Tree (Basically a Heap)
    4. ParentTree (Tree built with Two Arrays)
    5. Operations
    6. Ex 1
    7. Ex 2
  17. DFS/BFS
    1. Preorder
    2. Inorder
    3. Postorder
    4. Ex 1
    5. Ex 2
    6. Ex 3
  18. Dictionary
    1. Insert
    2. Search
    3. Delete
    4. Direct Address Table (GeeksForGeeks)
    5. Hash Table
  19. Binary Search Tree
    1. Binary Search Tree
    2. Min
    3. Max
    4. Operations
    5. Ex 1
    6. Ex 2
    7. Ex 3
    8. Ex 4
  20. Black-Red Tree
    1. Rotate
    2. Insert
    3. Delete
    4. Ex 1
  21. Exercises pt.1
    1. Ex 1
    2. Ex 2
    3. Ex 3
    4. Ex 4
    5. Ex 5
    6. Ex 6
    7. Ex 7
    8. Ex 8
  22. Exercises pt.2
    1. Ex 1
    2. Ex 2
    3. Ex 3
    4. Ex 4
    5. Ex 5
    6. Ex 6
  23. Exercises pt.3
  24. Other
    1. Tim Sort
    2. Has Duplicates in Merge Sort
    3. Merge Sort on Linked List (iterative)
    4. Python List (TODO: look info about it's implementation)
  25. [Pytohn Utils](https://twiki.di.uniroma1.it/pub/Intro_algo/AD/Dispense/METODI_UTILI_IN_PYTHON.pdf