This repository contains four mini-projects developed as part of an Algorithms and Data Structures course. Each project focuses on implementing different algorithms or data structures. A small report (in italian) on the exercises 1 to 3 can be found here.
Below is a brief description of each exercise:
Implement a library that provides the Merge-BinaryInsertion Sort algorithm in C. The algorithm combines Merge Sort and BinaryInsertion Sort to efficiently sort generic data. The library includes functions for sorting arrays and sorting records from a CSV file based on specified fields.
Develop a SkipList data structure in C, which allows for efficient search, insertion, and deletion operations with O(log n) complexity. SkipList is a probabilistic data structure commonly used for indexing data. The library provides functions for creating, clearing, inserting, and searching SkipLists.
Implement a PriorityQueue data structure in Java, supporting generic types and efficient operations such as insertion, deletion, and searching. The implementation utilizes a heap-based approach and offers methods for managing elements based on priority.
Create a library that implements a Graph data structure optimized for sparse data. The implementation supports both directed and undirected graphs, with or without labels on edges. Additionally, the library includes an implementation of the Prim's algorithm to determine the Minimum Spanning Forest of a graph.
I would like to express my gratitude to:
who have helped in the debugging process :)