Use the breadth-first search (bfs) algorithm
With a chosen or random node serving as the starting point, perform a breadth-first search of the whole graph and return the node ID values visited. The bfs algorithm differs from depth-first search (dfs) in that bfs will follow tree branches branches one level at a time until terminating at leaf node (dfs traverses branches as far as possible).
do_bfs(graph, node = NULL, direction = "all")
graph |
A graph object of class |
node |
An optional node ID value to specify a single starting point for the bfs. If not provided, a random node from the graph will be chosen. |
direction |
Using |
A vector containing node ID values for nodes visited during the breadth-first search. The order of the node IDs corresponds to the order visited.
# Create a graph containing # two balanced trees graph <- create_graph() %>% add_balanced_tree( k = 2, h = 2) %>% add_balanced_tree( k = 3, h = 2) # Perform a breadth-first # search of the graph, # beginning at the root node # `1` (the default # `direction = "all"` doesn't # take edge direction into # account) graph %>% do_bfs(node = 1) # If not specifying a # starting node, the function # will begin the search from # a random node graph %>% do_bfs() # It's also possible to # perform bfs while taking # into account edge direction; # using `direction = "in"` # causes the bfs routine to # visit nodes along inward edges graph %>% do_bfs( node = 1, direction = "in") # Using `direction = "out"` # results in the bfs moving # along solely outward edges graph %>% do_bfs( node = 1, direction = "out")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.