Search code examples
c++graphlemon-graph-library

How to find the neighbours of a node in Lemon


In the Lemon C++ Graph Library, given a node in an undirected graph say, how does one find other nodes that are edge connected?


Solution

  • I'll have a go at this even though I'm rusty with C++ and haven't used Lemon before:

    for (ListDigraph::OutArcIt arcIt(graph, node); arcIt != INVALID; ++arcIt) {
    
        Arc arc(*arcIt); // Lemon iterators are supposed to be convertible to items
                         // without operator*, so arc(a) might work too.
    
        Node oppositeNode( g.oppositeNode(node, arc) );
    
        // Do something with the opposite node.
        ...
    }
    

    I used this: LEMON -- an Open Source C++ Graph Template Library

    ... and this: LEMON: Graph Class Reference

    ... and I've done a reasonable amount of work with graph theory over the years.

    I hope it helps.