コード例 #1
0
ファイル: BuscaProfundidade.php プロジェクト: etnop/Grafos
 public function imprimeDfs(Grafo $g, $v)
 {
     $this->visitado[$v] = true;
     $this->count++;
     echo "dfs({$v})\n";
     foreach ($g->getAdj($v) as $vertice) {
         if (!$this->foiVisitado($vertice)) {
             $this->dfs($g, $vertice);
             echo "{$vertice} ";
         } else {
             echo "{$v} - visitado";
         }
         echo "\n";
     }
 }
コード例 #2
0
ファイル: Caminho.php プロジェクト: etnop/Grafos
 public function bfs(Grafo $g, $inicio)
 {
     $queue = new SplQueue();
     $this->visitado[$inicio] = TRUE;
     $queue->enqueue($inicio);
     while (!$queue->isEmpty()) {
         $v = $queue->dequeue();
         foreach ($g->getAdj($v) as $vertice) {
             if (!$this->visitado[$vertice]) {
                 $this->arestaPara[$vertice] = $v;
                 $this->visitado[$vertice] = TRUE;
                 $queue->enqueue($vertice);
             }
         }
     }
 }