Trismegiste\Mondrian\Graph\ReversedDigraph::getReversed PHP Method

getReversed() public method

Build the reversed digraph of this digraph
public getReversed ( ) : Digraph
return Digraph
    public function getReversed()
    {
        $newGraph = new Digraph();
        foreach ($this->graph->getVertexSet() as $vx) {
            // for isolated vertex :
            $newGraph->addVertex($vx);
            // we reverse each edge :
            foreach ($this->graph->getSuccessor($vx) as $vy) {
                $newGraph->addEdge($vy, $vx);
            }
        }
        return $newGraph;
    }

Usage Example

 public function testReversed()
 {
     $card = 10;
     for ($k = 0; $k < $card; $k++) {
         $this->graph->addVertex(new Vertex($k));
     }
     $vertex = $this->graph->getVertexSet();
     foreach ($vertex as $idx => $v) {
         // the first vertex is isolated
         for ($k = 0; $k < $idx; $k++) {
             $this->graph->addEdge($v, $vertex[$k]);
         }
     }
     $reversed = $this->graph->getReversed();
     $this->assertCount($card, $reversed->getVertexSet());
     $this->assertCount($card * ($card - 1) / 2, $reversed->getEdgeSet());
     $newGraph = new ReversedDigraph($reversed);
     $origin = $newGraph->getReversed();
     $this->assertEquals($this->graph->getVertexSet(), $origin->getVertexSet());
     $this->assertEquals($this->graph->getEdgeSet(), $origin->getEdgeSet());
 }
All Usage Examples Of Trismegiste\Mondrian\Graph\ReversedDigraph::getReversed
ReversedDigraph