Actualización

This commit is contained in:
Xes
2025-04-10 12:24:57 +02:00
parent 8969cc929d
commit 45420b6f0d
39760 changed files with 4303286 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
<?php
namespace Graphp\Algorithms;
class Eulerian extends BaseGraph
{
/**
* check whether this graph has an eulerian cycle
*
* @return bool
* @uses ConnectedComponents::isSingle()
* @uses Degree::getDegreeVertex()
* @todo isolated vertices should be ignored
* @todo definition is only valid for undirected graphs
*/
public function hasCycle()
{
$components = new ConnectedComponents($this->graph);
if ($components->isSingle()) {
$alg = new Degree($this->graph);
foreach ($this->graph->getVertices() as $vertex) {
// uneven degree => fail
if ($alg->getDegreeVertex($vertex) & 1) {
return false;
}
}
return true;
}
return false;
}
}