This is a console application written in C++ as a project for a data structures course. The app is based on graph theory and allows users to add or remove nodes and edges using a Mapper class that controls how data is displayed to the user and manages the IDs of nodes and edges. The app also includes several algorithms for calculating distances and paths between nodes, including Dijkstra's algorithm for finding the shortest path and minimum spanning tree, as well as BFS and DFS algorithms for displaying distances between nodes.
To use the app, simply run the executable file. The app will display a simple GUI that allows you to add or remove nodes and edges, as well as display the distances between nodes using BFS and DFS algorithms.
To add a node, simply click on the "Add Node" button and enter a name for the node. To remove a node, select the node you want to remove and click on the "Remove Node" button.
To add an edge, select the starting node and ending node and click on the "Add Edge" button. You can also specify a weight for the edge.
To remove an edge, select the edge you want to remove and click on the "Remove Edge" button.
To display the shortest pathbetween two nodes, select the starting node and ending node and click on the "Shortest Path" button. The app will use Dijkstra's algorithm to calculate the shortest path and display it on the screen.
To display the minimum spanning tree, click on the "Minimum Spanning Tree" button. The app will use Prim's algorithm to calculate the minimum spanning tree and display it on the screen.
To display the distances between nodes using BFS or DFS algorithms, select the starting node and click on the "BFS" or "DFS" button. The app will use the selected algorithm to calculate the distances between nodes and display them on the screen.
If you would like to contribute to the app, feel free to fork the repository and submit a pull request. Please make sure to follow the coding standards used in the app and include appropriate documentation with your changes.
This project is licensed under the MIT License - see the LICENSE.md file for details.