Team implementation of a C++ algorithm concerning a variant of a graph traversal problem given a maximum number of traversable edges.
This project was developed for the Laboratorio di Algoritmi examination of Prof. Marinella Sciortino, during the 2022/2023 Academic Year at the Universitร degli Studi di Palermo, Computer Science (L-31, 2086) course.
Andrea Spinelli - Marco Valenti - Raffaele Terracino
- Languages: C++
 - Frameworks/Libraries: CMake
 - Other: Git
 
To compile and run this C++ project, you will need a C++ compiler and the make utility.
Note for Windows users: You can get
g++andmakeby installing a toolchain like MinGW-w64 or by using the Windows Subsystem for Linux (WSL). On macOS (with Xcode Command Line Tools) and Linux, these tools are typically pre-installed or easily available.
- 
Clone the Repository Open your terminal or command prompt and clone the repository.
[git clone https://github.com/A-rgonaut/L-31-2023-Progetto-Lab-Algoritmi.git](https://github.com/A-rgonaut/L-31_SkyRoute_Planner_A_Variant_of_Warshall_s_Algorithm.git) cd L-31_SkyRoute_Planner_A_Variant_of_Warshall_s_Algorithm - 
Compile the Project Use the provided
makefileto compile the source code. This will create an executable file in the main directory.make all
 - 
Run the Application You can now run the compiled program. The
makefileincludes a convenient command for this.make run
Alternatively, you can run the executable directly:
./main
 - 
Interact with the Program Once running, the application will prompt you to enter the departure and arrival nodes (e.g., airport codes or numbers as defined in your dataset) in the console. It will then compute and display the shortest path.
 
This project is a C++ command-line application that finds the shortest path in a graph. It is designed to solve the flight route problem, using a custom-built graph data structure.
The core features of this implementation are:
- 
C++ Implementation: The entire logic is written in C++ for high performance, which is ideal for algorithmic tasks. The code is well-structured into multiple files (
graph.h,utilities.h) for better organization and reusability. - 
Custom Graph Data Structure: The project features a custom-built
Graphclass (defined insrc/graph.handsrc/graph.cpp) to represent the flight network, demonstrating a strong understanding of data structures from scratch. - 
File Parsing: It parses a custom
dataset.txtfile to dynamically build the graph in memory. This shows the ability to handle file I/O and custom data formats. - 
Shortest Path Algorithm: The program implements an efficient algorithm (likely Dijkstra's) to calculate the shortest path between two nodes (airports) specified by the user.
 - 
Command-Line Interface (CLI): The application is fully interactive via the command line. It prompts the user for input (departure and arrival airports) and prints the resulting optimal path directly to the console.