Пример #1
0
/**
 * toEdgeList() - converts graph (adjacency list) to edge list
 * @param g - edge list for this graph 
 */
void AdjList::toEdgeList(EdgeList &g)
{
    g.maxVertexNum = maxVertexNum;
    g.infinity = infinity;
    g.directed = directed;
    for (unsigned i = 0; i < G.size(); ++i)
    {
        for (int j = 0; j < G[i].size(); ++j)
        {
            if (!directed && i < G[i][j].second)
                g.addEdge(Edge(i, G[i][j].second, G[i][j].first), false);
            else if (directed)
                g.addEdge(Edge(i, G[i][j].second, G[i][j].first), false);
        }
    }
}