public function edges()
{
$oset = $this->getTraversableSplos($this->vertices);
foreach ($oset as $tail) {
$set = $this->getTraversableSplos($this->vertices[$tail]);
foreach ($set as $head) {
(yield array($tail, $head));
}
$this->walking->detach($set);
}
$this->walking->detach($oset);
}
public static function dump(DirectedAdjacencyList $graph) { $edges = []; foreach ($graph->edges() as $edge) { $edges[] = $edge[0]->getName() . ' ' . $edge[1]->getName(); } return $edges; }