Repository for the first project of the Algorithms and Data Structures course, at FEUP.
The main goal of the project is to create a schedule management system for FEUP's informatic system, with various functionalities related to schedules, such as modifying, searching, viewing, sorting and listing, among others. This project also focuses on the usage of linear and hierarchical data structures (vector, list, set, queue, stack, ...), as well as sorting and search algorithms.
- Clone the repository
- Run the following commands on the terminal:
cd feup-aed1 # Open project mkdir build && cd build # Create and open build directory cmake .. && cmake --build . # Build project ./feup-aed1 # Run project
- To reference efficiently objects in certain data structures (such as UcClasses), we used iterators, which worked well because those data structures were not modified after reading the dataset, but if you need to do modifications, this solution is not viable. In either case, we recommend using smart pointers, which were what we used in our second project, as they are much more reliable and flexible.
- When they say to use the linear and hierarchical data structures, use ALL of them. We change the
request_archive_
field in theDataset
class from a stack to a deque last minute, because of the efficiency when saving to file. Although we explained in our presentation that we were using the deque basically as a stack, we still received no points in the stack "part" :')
Grade: 19.25/20 (would be 19.75 if we used a stack :') )