This project implements a **weighted, undirected graph** using C++ to demonstrate key data structure concepts. It focuses on solving two main problems: generating the **Minimum Spanning Tree using Prim’s Algorithm** and finding the **shortest path between nodes using Dijkstra’s Algorithm**. The graph is represented with an **adjacency list** for efficient storage, and a **Qt-based graphical user interface** is used to visualize the graph, display the MST, and show the shortest path interactively, helping users better understand how these algorithms work in practice.