![]() |
STAG C++
2.0.0
Spectral Toolkit of Algorithms for Graphs
|
Methods for reading and writing graphs to disk.
For an introduction to the file formats supported by STAG, see Graph File Formats.
Functions | |
stag::Graph | stag::load_edgelist (std::string &filename) |
void | stag::save_edgelist (stag::Graph &graph, std::string &filename) |
stag::Graph | stag::load_adjacencylist (std::string &filename) |
void | stag::save_adjacencylist (stag::Graph &graph, std::string &filename) |
void | stag::edgelist_to_adjacencylist (std::string &edgelist_fname, std::string &adjacencylist_fname) |
void | stag::adjacencylist_to_edgelist (std::string &adjacencylist_fname, std::string &edgelist_fname) |
stag::Graph stag::load_edgelist | ( | std::string & | filename | ) |
Load a graph from an edgelist file.
We define an edgelist file in the following way.
All other lines are of one of the formats
<u>, <v>, <weight>
<u>, <v>
<u> <v> <weight>
<u> <v>
where <u>
and <v>
can be parsed as integers, and <weight>
can be parsed as a double. If the weight is omitted, it is taken to be 1.
Here is an example edgelist file.
# This line is ignored 0, 1, 0.5 1, 2, 1 2, 0, 0.5
filename | the name of the edgelist file to be loaded |
std::runtime_error | if the file doesn't exist or cannot be parsed as an edgelist |
void stag::save_edgelist | ( | stag::Graph & | graph, |
std::string & | filename | ||
) |
Save the given graph as an edgelist file.
graph | the graph object to be saved |
filename | the name of the file to save the edgelist data to |
stag::Graph stag::load_adjacencylist | ( | std::string & | filename | ) |
Load a graph from an adjacencylist file.
The adjacency list file format is defined in the following way.
#
or //
are ignored<node_id>: <list of neighbours>
, where <node_id>
is an integer and <list of neighbours>
is either a space-separated list of integers or a space-separated list of <id>:<weight>
where <id>
gives the id of the neighbour and <weight>
is the weight of the edge.<node IDs>
of each line must be sorted in increasing order.Here is an example adjacencylist file.
# This line is ignored 0: 1 2 1: 0 2 3 2: 0 1 3: 1
The following example includes weighted edges.
# This line is ignored 0: 1:0.5 2:0.5 1: 0:0.5 2:1 2: 0:0.5 1:1
Note that this method loads the entire graph into memory. For large graphs, the stag::AdjacencyListLocalGraph object can be used to access the graph in a 'local' way without reading the entire graph into memory.
filename | the name of the adjacency list file to be loaded |
std::runtime_error | if the file doesn't exist or cannot be parsed as an adjacency list |
void stag::save_adjacencylist | ( | stag::Graph & | graph, |
std::string & | filename | ||
) |
Save the given graph as an adjacencylist file.
graph | the graph object to be saved |
filename | the name of the file to save the adjacencylist data to |
void stag::edgelist_to_adjacencylist | ( | std::string & | edgelist_fname, |
std::string & | adjacencylist_fname | ||
) |
Convert an edgelist file to an adjacency list.
edgelist_fname | the name of the file containing the edgelist. |
adjacencylist_fname | the name of the file to write the adjacencylist. |
void stag::adjacencylist_to_edgelist | ( | std::string & | adjacencylist_fname, |
std::string & | edgelist_fname | ||
) |
Convert an adjacency list file to an edgelist.
adjacencylist_fname | the name of the file containing the adjacency list. |
edgelist_fname | the name of the file to write the edgelist. |