bfs {RBGL}R Documentation

Breadth and Depth-first search

Description

These functions return information on graph traversal by breadth and depth first search using routines from the BOOST library.

Usage

bfs(object, node, checkConn=TRUE)
dfs(object, node, checkConn=TRUE)

Arguments

object instance of class graph from Bioconductor graph class
node node name where search starts – note that this is ignored for dfs
checkConn logical indicating whether connectivity of input graph should be checked

Details

These two functions are interfaces to the BOOST graph library functions for breadth first and depth first search. Both methods can handle unconnected graphs and unless checkConn is specified neither tests connectivity. If checkConn is specified and the graph is not connected an error is signalled.

Note that the parameter sequences for bfs and dfs agree, but that at present the node argument to dfs is ignored. Cormen et al note (p 542) that `results of depth-first search may depend upon the order in which the vertices are examined ... These different visitation orders tend not to cause problems in practices, as any DFS result can usually be used effectively, with essentially equivalent results'. To fix the starting node of dfs, order the graph vertex list so that the desired start point is the first entry.

Value

For bfs a vector of node indices in order of BFS visit.
For dfs a list of two vectors of nodes, with elements discover (order of DFS discovery), and finish (order of DFS completion).

Author(s)

VJ Carey <stvjc@channing.harvard.edu>

Examples

dd <- fromGXL(file(system.file("XML/bfsex.gxl",package="RBGL")))
bfs(dd, "r", FALSE)
bfs(dd, "s", TRUE)

dd2 <- fromGXL(file(system.file("XML/dfsex.gxl",package="RBGL")))
dfs(dd2, "u", FALSE)

[Package RBGL version 1.6.0 Index]