Skip to main content
Module

x/rimbu/mod.ts>Traverse.traverseBreadthFirstCustom

Rimbu is a TypeScript library focused on immutable, performant, and type-safe collections and other tools.
Go to Latest
function Traverse.traverseBreadthFirstCustom
import { Traverse } from "https://deno.land/x/rimbu@0.13.1/mod.ts";
const { traverseBreadthFirstCustom } = Traverse;

Returns a stream of connections that can be reached in the given graph starting at the given startNode, and using breadth-first traversal. It can avoid loops if needed in a custom way by supplying the addVisitedNode function.

Examples

Example 1

const g = EdgeGraphHashed.of([1, 2], [2, 3], [1, 3], [3, 4])
const stream = traverseBreadthFirstCustom(g, 1)
console.log(stream.toArray())
// => [[1, 2], [1, 3], [2, 3], [3, 4]]

Parameters

graph: G
  • the graph to traverse
startNode: N
  • the start node within the graph
optional
addVisitedNode: (node: N) => boolean = [UNSUPPORTED]
  • a function taking the currenty traversed node, and returning true if the node has been traversed before, or false otherwise