A.56 library(ugraphs): Graph manipulation library
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • The SWI-Prolog library
        • library(ugraphs): Graph manipulation library
          • vertices/2
          • vertices_edges_to_ugraph/3
          • add_vertices/3
          • del_vertices/3
          • add_edges/3
          • ugraph_union/3
          • del_edges/3
          • edges/2
          • transitive_closure/2
          • transpose_ugraph/2
          • compose/3
          • top_sort/2
          • top_sort/3
          • neighbors/3
          • neighbours/3
          • connect_ugraph/3
          • complement/2
          • reachable/3
    • Packages
Availability::- use_module(library(ugraphs)).(can be autoloaded)
Source[det]connect_ugraph(+UGraphIn, -Start, -UGraphOut)
Adds Start as an additional vertex that is connected to all vertices in UGraphIn. This can be used to create an topological sort for a not connected graph. Start is before any vertex in UGraphIn in the standard order of terms. No vertex in UGraphIn can be a variable.

Can be used to order a not-connected graph as follows:

top_sort_unconnected(Graph, Vertices) :-
    (   top_sort(Graph, Vertices)
    ->  true
    ;   connect_ugraph(Graph, Start, Connected),
        top_sort(Connected, Ordered0),
        Ordered0 = [Start|Vertices]
    ).