(Introdução a Algoritmos e Estruturas de Dados - EN: Introduction to Algorithms and Data Structures).
The project's objective was to develop a program for managing multiple parking lots in C. We were limited to using only four libraries: stdio.h, stdlib.h, ctype.h, and string.h.
We were tasked with creating commands that allow users to create and delete a parking lot, enable cars to enter and exit the park, display the billing of the park for a single day or all days, and exhibit all existing parks. Further details are available in the project statement.
Evaluation of this project comprised automatic assessment on the college's GitLab, manual verification by the instructors, and a practical test. The practical test involved implementing new commands and modifying existing ones to achieve slightly different functionalities.
Throughout the project, various data structures were employed to efficiently manage and manipulate the data. Hash tables were utilized for fast retrieval of car information, while linked lists and doubly linked lists were employed to organize and maintain lists of entries and exits facilitating easy insertion and deletion operations.
In addition to data structures, sorting algorithms played a crucial role in optimizing the performance of the program. Merge sort was implemented to efficiently sort large datasets, ensuring the orderly arrangement of parking lot information and facilitating quick access during retrieval operations. Furthermore, insertion sort was utilized for its simplicity and effectiveness in sorting smaller datasets, enhancing the overall efficiency of the program. These sorting algorithms were instrumental in maintaining the integrity and efficiency of the parking lot management system.