ccomb/cycle-detect

Floyd Cycle detection Algorithm


License
BSD-3-Clause
Install
elm-package install ccomb/cycle-detect 1.2.0

Documentation

Cycle Detection

Your data model has entities that can have references to itself. For instance a parent which can have a parent, and so on, up to the root. But wait, is there a root? How can you be sure that you won't fall into an infinite cycle by walking in the graph? You can answer this question by using the Floyd cycle detection algorithm.

Launch a turtle and a hare on the same path. The hare runs twice as fast as the turtle. If the two cross again, then there is a loop in the path:

entry

If there is no loop, you can expect there is an output in the graph:

output