Documentation for c26eea874d

This commit is contained in:
realstealthninja
2025-05-19 11:38:33 +00:00
parent c7a9a42397
commit 14583a2f33
2829 changed files with 30266 additions and 21669 deletions

View File

@@ -4,7 +4,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>TheAlgorithms/C++: graph/cycle_check_directed_graph.cpp Source File</title>
<link rel="icon" href="../../favicon.svg" type="image/x-icon" />
@@ -60,7 +60,7 @@ window.MathJax = {
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -124,7 +124,8 @@ $(function(){initNavTree('d3/dec/cycle__check__directed__graph_8cpp_source.html'
<div class="headertitle"><div class="title">cycle_check_directed_graph.cpp</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;iostream&gt;</span> <span class="comment">// for std::cout</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;map&gt;</span> <span class="comment">// for std::map</span></div>
@@ -133,18 +134,18 @@ $(function(){initNavTree('d3/dec/cycle__check__directed__graph_8cpp_source.html'
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;type_traits&gt;</span> <span class="comment">// for std::remove_reference</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;utility&gt;</span> <span class="comment">// for std::move</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;vector&gt;</span> <span class="comment">// for std::vector</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">struct </span><a class="code hl_struct" href="../../d7/d77/class_edge.html">Edge</a> {</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> src;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dest;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <a class="code hl_struct" href="../../d7/d77/class_edge.html">Edge</a>() = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <a class="code hl_struct" href="../../d7/d77/class_edge.html">~Edge</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <a class="code hl_struct" href="../../d7/d77/class_edge.html">Edge</a>(<a class="code hl_struct" href="../../d7/d77/class_edge.html">Edge</a>&amp;&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <a class="code hl_struct" href="../../d7/d77/class_edge.html">Edge</a>&amp; operator=(<a class="code hl_struct" href="../../d7/d77/class_edge.html">Edge</a>&amp;&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <a class="code hl_struct" href="../../d7/d77/class_edge.html">Edge</a>(<a class="code hl_struct" href="../../d7/d77/class_edge.html">Edge</a> <span class="keyword">const</span>&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <a class="code hl_struct" href="../../d7/d77/class_edge.html">Edge</a>&amp; operator=(<a class="code hl_struct" href="../../d7/d77/class_edge.html">Edge</a> <span class="keyword">const</span>&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> Edge() = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> ~Edge() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> Edge(Edge&amp;&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> Edge&amp; operator=(Edge&amp;&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> Edge(Edge <span class="keyword">const</span>&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> Edge&amp; operator=(Edge <span class="keyword">const</span>&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span></div>
<div class="foldopen" id="foldopen00041" data-start="{" data-end="}">
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="../../d7/d77/class_edge.html#a415a5d002fe11c58711e48aabe975980"> 41</a></span> <a class="code hl_function" href="../../d7/d77/class_edge.html#a415a5d002fe11c58711e48aabe975980">Edge</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> source, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> destination)</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> : src(source), dest(destination) {}</div>
@@ -152,26 +153,26 @@ $(function(){initNavTree('d3/dec/cycle__check__directed__graph_8cpp_source.html'
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span>};</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="keyword">using </span>AdjList = std::map&lt;unsigned int, std::vector&lt;unsigned int&gt;&gt;;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="keyword">class </span><a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a> {</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a>() : m_adjList({}) {}</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <a class="code hl_class" href="../../da/d9a/class_graph.html">~Graph</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a>(<a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a>&amp;&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a>&amp; operator=(<a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a>&amp;&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a>(<a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a> <span class="keyword">const</span>&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a>&amp; operator=(<a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a> <span class="keyword">const</span>&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> Graph() : m_adjList({}) {}</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> ~Graph() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> Graph(Graph&amp;&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> Graph&amp; operator=(Graph&amp;&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> Graph(Graph <span class="keyword">const</span>&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> Graph&amp; operator=(Graph <span class="keyword">const</span>&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span></div>
<div class="foldopen" id="foldopen00069" data-start="{" data-end="}">
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="../../da/d9a/class_graph.html#adcbd1b60cab30b97c54d700eee8e456d"> 69</a></span> <a class="code hl_function" href="../../da/d9a/class_graph.html#adcbd1b60cab30b97c54d700eee8e456d">Graph</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vertices, AdjList adjList)</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> : m_vertices(vertices), m_adjList(std::move(adjList)) {}</div>
</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span></div>
<div class="foldopen" id="foldopen00077" data-start="{" data-end="}">
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="../../da/d9a/class_graph.html#a8c95e00effaea0cd9404dd74cd802ae3"> 77</a></span> <a class="code hl_function" href="../../da/d9a/class_graph.html#a8c95e00effaea0cd9404dd74cd802ae3">Graph</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vertices, AdjList&amp;&amp; adjList)</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> : m_vertices(vertices), m_adjList(std::move(adjList)) {}</div>
</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span></div>
<div class="foldopen" id="foldopen00089" data-start="{" data-end="}">
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="../../da/d9a/class_graph.html#aa99d44d3179d5bbbfa84a5031cf80cb1"> 89</a></span> <a class="code hl_function" href="../../da/d9a/class_graph.html#aa99d44d3179d5bbbfa84a5031cf80cb1">Graph</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vertices, std::vector&lt;Edge&gt; <span class="keyword">const</span>&amp; edges)</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> : m_vertices(vertices) {</div>
@@ -184,17 +185,17 @@ $(function(){initNavTree('d3/dec/cycle__check__directed__graph_8cpp_source.html'
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> }</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> }</div>
</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span></div>
<div class="foldopen" id="foldopen00104" data-start="{" data-end="}">
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="../../da/d9a/class_graph.html#a5a090e1a63a5c47bdd1a539b21f7fd1d"> 104</a></span> std::remove_reference&lt;AdjList&gt;::type <span class="keyword">const</span>&amp; <a class="code hl_function" href="../../da/d9a/class_graph.html#a5a090e1a63a5c47bdd1a539b21f7fd1d">getAdjList</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</span> m_adjList;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div>
</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="../../da/d9a/class_graph.html#a8dcb5ce0b4a6f65827f5055d9d53a3f1"> 111</a></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="../../da/d9a/class_graph.html#a8dcb5ce0b4a6f65827f5055d9d53a3f1">getVertices</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_vertices; }</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="../../da/d9a/class_graph.html#ac5a4d9a4f894a179198936042c778413"> 119</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../da/d9a/class_graph.html#ac5a4d9a4f894a179198936042c778413">addVertices</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> num = 1) { m_vertices += num; }</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span></div>
<div class="foldopen" id="foldopen00125" data-start="{" data-end="}">
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="../../da/d9a/class_graph.html#af765dda8f21280e1cecea19e129f1bc5"> 125</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../da/d9a/class_graph.html#af765dda8f21280e1cecea19e129f1bc5">addEdge</a>(<a class="code hl_struct" href="../../d7/d77/class_edge.html">Edge</a> <span class="keyword">const</span>&amp; edge) {</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">if</span> (edge.src &gt;= m_vertices || edge.dest &gt;= m_vertices) {</div>
@@ -203,7 +204,7 @@ $(function(){initNavTree('d3/dec/cycle__check__directed__graph_8cpp_source.html'
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> m_adjList[edge.src].emplace_back(edge.dest);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> }</div>
</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span></div>
<div class="foldopen" id="foldopen00137" data-start="{" data-end="}">
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="../../da/d9a/class_graph.html#ac85c63bcca4764a621f9f8609a8e5910"> 137</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../da/d9a/class_graph.html#ac85c63bcca4764a621f9f8609a8e5910">addEdge</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> source, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> destination) {</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">if</span> (source &gt;= m_vertices || destination &gt;= m_vertices) {</div>
@@ -218,18 +219,18 @@ $(function(){initNavTree('d3/dec/cycle__check__directed__graph_8cpp_source.html'
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_vertices = 0;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> AdjList m_adjList;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span>};</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span></div>
<div class="foldopen" id="foldopen00159" data-start="{" data-end="};">
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="../../d3/dbb/class_cycle_check.html"> 159</a></span><span class="keyword">class </span><a class="code hl_class" href="../../d3/dbb/class_cycle_check.html">CycleCheck</a> {</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">enum</span> nodeStates : uint8_t { not_visited = 0, in_stack, visited };</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span></div>
<div class="foldopen" id="foldopen00171" data-start="{" data-end="}">
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="../../d3/dbb/class_cycle_check.html#a2f4485c08b45e7a21a2e86f9c3f01d8b"> 171</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d3/dbb/class_cycle_check.html#a2f4485c08b45e7a21a2e86f9c3f01d8b">isCyclicDFSHelper</a>(AdjList <span class="keyword">const</span>&amp; adjList,</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> std::vector&lt;nodeStates&gt;* state,</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_class" href="../../d5/da1/structnode.html">node</a>) {</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="comment">// Add node &quot;in_stack&quot; state.</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> (*state)[<a class="code hl_typedef" href="../../d8/dee/avltree_8cpp.html#a74f0cf18a0e5b832d9994e2f2d022287">node</a>] = in_stack;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> (*state)[<a class="code hl_class" href="../../d5/da1/structnode.html">node</a>] = in_stack;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// If the node has children, then recursively visit all children of the</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="comment">// node.</span></div>
@@ -254,7 +255,7 @@ $(function(){initNavTree('d3/dec/cycle__check__directed__graph_8cpp_source.html'
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// Current node has been evaluated for the presence of cycle and had no</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <span class="comment">// cycle. Mark current node as &quot;visited&quot;.</span></div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> (*state)[<a class="code hl_typedef" href="../../d8/dee/avltree_8cpp.html#a74f0cf18a0e5b832d9994e2f2d022287">node</a>] = visited;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> (*state)[<a class="code hl_class" href="../../d5/da1/structnode.html">node</a>] = visited;</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="comment">// Return that current node didn&#39;t result in any cycles.</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> }</div>
@@ -264,7 +265,7 @@ $(function(){initNavTree('d3/dec/cycle__check__directed__graph_8cpp_source.html'
<div class="foldopen" id="foldopen00213" data-start="{" data-end="}">
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"><a class="line" href="../../d3/dbb/class_cycle_check.html#ad9a270ffba3a68539b92272c702e3474"> 213</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d3/dbb/class_cycle_check.html#ad9a270ffba3a68539b92272c702e3474">isCyclicDFS</a>(<a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a> <span class="keyword">const</span>&amp; <a class="code hl_namespace" href="../../df/dce/namespacegraph.html">graph</a>) {</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">auto</span> vertices = <a class="code hl_namespace" href="../../df/dce/namespacegraph.html">graph</a>.getVertices();</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> </div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> std::vector&lt;nodeStates&gt; state(vertices, not_visited);</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> </div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// Start visiting each node.</span></div>
@@ -285,7 +286,7 @@ $(function(){initNavTree('d3/dec/cycle__check__directed__graph_8cpp_source.html'
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> }</div>
</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> </div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span></div>
<div class="foldopen" id="foldopen00250" data-start="{" data-end="}">
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="../../d3/dbb/class_cycle_check.html#a399292a33edf87499daa52b51315aca5"> 250</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d3/dbb/class_cycle_check.html#a399292a33edf87499daa52b51315aca5">isCyclicBFS</a>(<a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a> <span class="keyword">const</span>&amp; <a class="code hl_namespace" href="../../df/dce/namespacegraph.html">graph</a>) {</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">auto</span> graphAjdList = <a class="code hl_namespace" href="../../df/dce/namespacegraph.html">graph</a>.getAdjList();</div>
@@ -340,7 +341,7 @@ $(function(){initNavTree('d3/dec/cycle__check__directed__graph_8cpp_source.html'
</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span>};</div>
</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> </div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span></div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span><span class="keywordtype">int</span> <a class="code hl_function" href="../../dd/d1e/generate__parentheses_8cpp.html#gae66f6b31b5ad750f1fe042a706a4e3d4">main</a>() {</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <span class="comment">// Instantiate the graph.</span></div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <a class="code hl_class" href="../../da/d9a/class_graph.html">Graph</a> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a>(7, std::vector&lt;Edge&gt;{{0, 1}, {1, 2}, {2, 0}, {2, 5}, {3, 5}});</div>
@@ -351,7 +352,6 @@ $(function(){initNavTree('d3/dec/cycle__check__directed__graph_8cpp_source.html'
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> std::cout &lt;&lt; <a class="code hl_function" href="../../d3/dbb/class_cycle_check.html#ad9a270ffba3a68539b92272c702e3474">CycleCheck::isCyclicDFS</a>(g) &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span>}</div>
<div class="ttc" id="aavltree_8cpp_html_a74f0cf18a0e5b832d9994e2f2d022287"><div class="ttname"><a href="../../d8/dee/avltree_8cpp.html#a74f0cf18a0e5b832d9994e2f2d022287">node</a></div><div class="ttdeci">struct node { int data; int height; struct node *left; struct node *right;} node</div><div class="ttdoc">for std::queue</div><div class="ttdef"><b>Definition</b> <a href="../../d8/dee/avltree_8cpp_source.html#l00013">avltree.cpp:13</a></div></div>
<div class="ttc" id="aclass_cycle_check_html"><div class="ttname"><a href="../../d3/dbb/class_cycle_check.html">CycleCheck</a></div><div class="ttdef"><b>Definition</b> <a href="#l00159">cycle_check_directed_graph.cpp:159</a></div></div>
<div class="ttc" id="aclass_cycle_check_html_a2f4485c08b45e7a21a2e86f9c3f01d8b"><div class="ttname"><a href="../../d3/dbb/class_cycle_check.html#a2f4485c08b45e7a21a2e86f9c3f01d8b">CycleCheck::isCyclicDFSHelper</a></div><div class="ttdeci">static bool isCyclicDFSHelper(AdjList const &amp;adjList, std::vector&lt; nodeStates &gt; *state, unsigned int node)</div><div class="ttdef"><b>Definition</b> <a href="#l00171">cycle_check_directed_graph.cpp:171</a></div></div>
<div class="ttc" id="aclass_cycle_check_html_a399292a33edf87499daa52b51315aca5"><div class="ttname"><a href="../../d3/dbb/class_cycle_check.html#a399292a33edf87499daa52b51315aca5">CycleCheck::isCyclicBFS</a></div><div class="ttdeci">static bool isCyclicBFS(Graph const &amp;graph)</div><div class="ttdef"><b>Definition</b> <a href="#l00250">cycle_check_directed_graph.cpp:250</a></div></div>
@@ -378,7 +378,7 @@ $(function(){initNavTree('d3/dec/cycle__check__directed__graph_8cpp_source.html'
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_12552d7fa429bf94a2e32e5cf39f7e69.html">graph</a></li><li class="navelem"><b>cycle_check_directed_graph.cpp</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>