![]() |
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. |