title: Find all cycles in graph, redux
body: <p>I know there are a quite some answers existing on this question. However, I found none of them really bringing it to the point.<br>
  Some argue that a cycle is (almost) the same as a strongly connected components (s. <a href="https://stackoverflow.com/questions/546655/finding-all-cycles-in-graph/549402#549402">Finding all cycles in a directed graph</a>) , so one could use algorithms designed for that goal.<br>
  Some argue that finding <strong>a</strong> cycle can be done via DFS and checking for back-edges (s. boost graph documentation on file dependencies).<br>
  <br>
  I now would like to have some suggestions on whether <strong>all</strong> cycles in a graph can be detected via DFS and checking for back-edges?<br>
  <a href="http://www.me.utexas.edu/~bard/IP/Handouts/cycles.pdf" rel="nofollow noreferrer">http://www.me.utexas.edu/~bard/IP/Handouts/cycles.pdf</a> (found here on S.O.) states one methode based on cycle bases. Me personally, I don't find it very intuitive so I'm looking for a different solution.<br>
  <br>
  EDIT: My initial opinion was apparently wrong. S. next answer by "Moron".
  <br>
  <strong>Initial</strong> opinion:
  My opinion is that it indeed could work that way as DFS-VISIT (s. pseudocode of DFS) freshly enters each node that was not yet visited. In that sense, each vertex exhibits a potential start of a cycle. Additionally, as DFS visits each edge once, each edge leading to the starting point of a cycle is also covered. Thus, by using DFS and back-edge checking it should indeed be possible to detect <strong>all</strong> cycles in a graph. Note that, if cycles with different numbers of participant nodes exist (e.g. triangles, rectangles etc.), additional work has to be done to discriminate the acutal "shape" of each cycle.</p>