This repository contains my Algorithm and Data Structure Analysis assignments, all implemented in C++. Each assignment focuses on fundamental data structures and algorithms, including arithmetic operations, trees, hash tables, and graph algorithms.
This assignment introduced me to C++ and involved implementing various arithmetic operations:
- Addition and Subtraction algorithms
- Karatsuba Multiplication – a divide-and-conquer algorithm for fast multiplication
- Division (required for postgraduate students)
Implemented an AVL tree, a self-balancing binary search tree, ensuring:
- Automatic rebalancing after insertions and deletions
- Optimized time complexity of O(log n) for insertions, deletions, and searches
Developed a hash table data structure using:
- Linear probing for collision resolution
- Efficient insertion, deletion, and search operations
Implemented a Minimum Spanning Tree (MST) algorithm of my choice. I chose Kruskal's Algorithm, which:
- Uses Greedy approach to find the MST
- Sorts edges and applies the Union-Find data structure for cycle detection
- Runs in O(E log E) time complexity