Method code for $graph.breadth_search()

[Turn on line numbering]
arg node, data, neighbors, is_dest;
var d, i, j, path;

d = #[[node, 'source]];
i = 1;
while (i <= d.keys().length() && !(node = (d.keys())[i++]).(is_dest)(data)) {
    refresh();
    for j in (node.(neighbors)())
        d = d.add(j, node);
}
if (i <= d.keys().length()) {
    refresh();
    path = [node];
    while ((node = d[node]) != 'source)
        path += [node];
    return path;
} else {
    return 0;
}

["// Created 23-Nov-1996 as a part of ColdCore, see: @help Credit"]

the Cold Dark