#include #include #include // Para std::pair using namespace std; typedef pair EdgeWeight; // Definimos un alias para una arista con peso class Graph { private: int numVertices; // Número de vértices en el grafo vector> adjList; // Lista de adyacencia ponderada public: // Constructor que inicializa el número de vértices y la lista de adyacencia vacía Graph(int V) : numVertices(V), adjList(V) {} // Función para agregar una arista al grafo con peso void addEdge(int u, int v, int weight) { adjList[u].push_back({v, weight}); adjList[v].push_back({u, weight}); // Por ser no dirigido } // Función para imprimir la lista de adyacencia del grafo con pesos void printGraph() const { for (int i = 0; i < numVertices; ++i) { cout << "Vértice " << i << ": "; for (const auto &adj : adjList[i]) { cout << "(" << adj.first << ", " << adj.second << ") "; } cout << endl; } } }; int main() { // Crear un grafo con 5 vértices Graph g(5); // Agregar aristas al grafo con pesos g.addEdge(0, 1, 4); g.addEdge(0, 2, 3); g.addEdge(1, 2, 1); g.addEdge(3, 4, 2); // Imprimir la lista de adyacencia del grafo con pesos g.printGraph(); return 0; }