-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInstance.cpp
More file actions
37 lines (31 loc) · 899 Bytes
/
Instance.cpp
File metadata and controls
37 lines (31 loc) · 899 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "Instance.h"
Instance::Instance( string file ) :
n_nodes( 0 ), n_edges( 0 )
{
ifstream ifs( file.c_str() );
if( ifs.fail() ) {
cerr << "could not open input file " << file << "\n";
exit( -1 );
}
cout << "Reading instance from file " << file << "\n";
ifs >> n_nodes >> n_edges;
cout << "Number of nodes: " << n_nodes << "\n";
cout << "Number of edges: " << n_edges << "\n";
edges.resize( n_edges );
incidentEdges.resize( n_nodes );
unsigned int id;
while( ifs >> id ) {
ifs >> edges[id].v1 >> edges[id].v2 >> edges[id].weight;
incidentEdges[edges[id].v1].push_back( id );
incidentEdges[edges[id].v2].push_back( id );
}
ifs.close();
cout << "Incidency list:" << "\n";
for( unsigned int v = 0; v < n_nodes; v++ ) {
cout << v << ": ";
for( auto& e : incidentEdges[v] ) {
cout << "(" << edges[e].v1 << "," << edges[e].v2 << "), ";
}
cout << "\n";
}
}