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++: greedy_algorithms/boruvkas_minimum_spanning_tree.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,12 +124,13 @@ $(function(){initNavTree('d4/d6c/boruvkas__minimum__spanning__tree_8cpp_source.h
<div class="headertitle"><div class="title">boruvkas_minimum_spanning_tree.cpp</div></div>
</div><!--header-->
<div class="contents">
<a href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<a href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &lt;cassert&gt;</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include &lt;climits&gt;</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include &lt;iostream&gt;</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include &lt;vector&gt;</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="keyword">namespace </span><a class="code hl_namespace" href="../../d2/d90/namespacegreedy__algorithms.html">greedy_algorithms</a> {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="keyword">namespace </span><a class="code hl_namespace" href="../../d8/d64/namespaceboruvkas__minimum__spanning__tree.html">boruvkas_minimum_spanning_tree</a> {</div>
<div class="foldopen" id="foldopen00047" data-start="{" data-end="}">
@@ -141,7 +142,7 @@ $(function(){initNavTree('d4/d6c/boruvkas__minimum__spanning__tree_8cpp_source.h
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">return</span> parent[v].first;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span>}</div>
</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span></div>
<div class="foldopen" id="foldopen00060" data-start="{" data-end="}">
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a94c615fc66b72e0adbcbcb99aabb1a59"> 60</a></span>std::vector&lt;std::vector&lt;int&gt;&gt; <a class="code hl_function" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a94c615fc66b72e0adbcbcb99aabb1a59">boruvkas</a>(std::vector&lt;std::vector&lt;int&gt;&gt; adj) {</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordtype">size_t</span> size = adj.size();</div>
@@ -253,7 +254,7 @@ $(function(){initNavTree('d4/d6c/boruvkas__minimum__spanning__tree_8cpp_source.h
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">return</span> MST;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span>}</div>
</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span></div>
<div class="foldopen" id="foldopen00175" data-start="{" data-end="}">
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a2311b22324cf09926726e4ce1309af8b"> 175</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a2311b22324cf09926726e4ce1309af8b">test_findGraphSum</a>(std::vector&lt;std::vector&lt;int&gt;&gt; adj) {</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordtype">size_t</span> size = adj.size();</div>
@@ -272,7 +273,7 @@ $(function(){initNavTree('d4/d6c/boruvkas__minimum__spanning__tree_8cpp_source.h
</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span>} <span class="comment">// namespace boruvkas_minimum_spanning_tree</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span>} <span class="comment">// namespace greedy_algorithms</span></div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span></div>
<div class="foldopen" id="foldopen00196" data-start="{" data-end="}">
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e"> 196</a></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>() {</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Starting tests...\n\n&quot;</span>;</div>
@@ -282,8 +283,8 @@ $(function(){initNavTree('d4/d6c/boruvkas__minimum__spanning__tree_8cpp_source.h
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> {INT_MAX, 5, 3, INT_MAX, 0},</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> };</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> std::vector&lt;std::vector&lt;int&gt;&gt; MST =</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> greedy_algorithms::boruvkas_minimum_spanning_tree::boruvkas(<a class="code hl_namespace" href="../../df/dce/namespacegraph.html">graph</a>);</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> assert(greedy_algorithms::boruvkas_minimum_spanning_tree::test_findGraphSum(</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <a class="code hl_function" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a94c615fc66b72e0adbcbcb99aabb1a59">greedy_algorithms::boruvkas_minimum_spanning_tree::boruvkas</a>(<a class="code hl_namespace" href="../../df/dce/namespacegraph.html">graph</a>);</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> assert(<a class="code hl_function" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a2311b22324cf09926726e4ce1309af8b">greedy_algorithms::boruvkas_minimum_spanning_tree::test_findGraphSum</a>(</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> MST) == 13);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> std::cout &lt;&lt; <span class="stringliteral">&quot;1st test passed!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div>
@@ -292,13 +293,13 @@ $(function(){initNavTree('d4/d6c/boruvkas__minimum__spanning__tree_8cpp_source.h
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> {0, 3, 0, 0, 7},</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> {6, 8, 0, 0, 9},</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> {0, 5, 7, 9, 0}};</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> MST = greedy_algorithms::boruvkas_minimum_spanning_tree::boruvkas(<a class="code hl_namespace" href="../../df/dce/namespacegraph.html">graph</a>);</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> assert(greedy_algorithms::boruvkas_minimum_spanning_tree::test_findGraphSum(</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> MST = <a class="code hl_function" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a94c615fc66b72e0adbcbcb99aabb1a59">greedy_algorithms::boruvkas_minimum_spanning_tree::boruvkas</a>(<a class="code hl_namespace" href="../../df/dce/namespacegraph.html">graph</a>);</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> assert(<a class="code hl_function" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a2311b22324cf09926726e4ce1309af8b">greedy_algorithms::boruvkas_minimum_spanning_tree::test_findGraphSum</a>(</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> MST) == 16);</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> std::cout &lt;&lt; <span class="stringliteral">&quot;2nd test passed!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span>}</div>
</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span></div>
<div class="foldopen" id="foldopen00224" data-start="{" data-end="}">
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4"> 224</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>() {</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <a class="code hl_function" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// run self-test implementations</span></div>
@@ -307,10 +308,10 @@ $(function(){initNavTree('d4/d6c/boruvkas__minimum__spanning__tree_8cpp_source.h
</div>
<div class="ttc" id="aboruvkas__minimum__spanning__tree_8cpp_html_a2311b22324cf09926726e4ce1309af8b"><div class="ttname"><a href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a2311b22324cf09926726e4ce1309af8b">greedy_algorithms::boruvkas_minimum_spanning_tree::test_findGraphSum</a></div><div class="ttdeci">int test_findGraphSum(std::vector&lt; std::vector&lt; int &gt; &gt; adj)</div><div class="ttdoc">counts the sum of edges in the given tree</div><div class="ttdef"><b>Definition</b> <a href="#l00175">boruvkas_minimum_spanning_tree.cpp:175</a></div></div>
<div class="ttc" id="aboruvkas__minimum__spanning__tree_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> <a href="#l00196">boruvkas_minimum_spanning_tree.cpp:196</a></div></div>
<div class="ttc" id="aboruvkas__minimum__spanning__tree_8cpp_html_a94c615fc66b72e0adbcbcb99aabb1a59"><div class="ttname"><a href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a94c615fc66b72e0adbcbcb99aabb1a59">greedy_algorithms::boruvkas_minimum_spanning_tree::boruvkas</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; int &gt; &gt; boruvkas(std::vector&lt; std::vector&lt; int &gt; &gt; adj)</div><div class="ttdoc">the implementation of boruvka's algorithm</div><div class="ttdef"><b>Definition</b> <a href="#l00060">boruvkas_minimum_spanning_tree.cpp:60</a></div></div>
<div class="ttc" id="aboruvkas__minimum__spanning__tree_8cpp_html_a95de0f5e70e83164dbd1b4c515565e84"><div class="ttname"><a href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a95de0f5e70e83164dbd1b4c515565e84">greedy_algorithms::boruvkas_minimum_spanning_tree::findParent</a></div><div class="ttdeci">int findParent(std::vector&lt; std::pair&lt; int, int &gt; &gt; parent, const int v)</div><div class="ttdoc">Recursively returns the vertex's parent at the root of the tree.</div><div class="ttdef"><b>Definition</b> <a href="#l00047">boruvkas_minimum_spanning_tree.cpp:47</a></div></div>
<div class="ttc" id="aboruvkas__minimum__spanning__tree_8cpp_html_a94c615fc66b72e0adbcbcb99aabb1a59"><div class="ttname"><a href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a94c615fc66b72e0adbcbcb99aabb1a59">greedy_algorithms::boruvkas_minimum_spanning_tree::boruvkas</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; int &gt; &gt; boruvkas(std::vector&lt; std::vector&lt; int &gt; &gt; adj)</div><div class="ttdoc">the implementation of boruvka&#39;s algorithm</div><div class="ttdef"><b>Definition</b> <a href="#l00060">boruvkas_minimum_spanning_tree.cpp:60</a></div></div>
<div class="ttc" id="aboruvkas__minimum__spanning__tree_8cpp_html_a95de0f5e70e83164dbd1b4c515565e84"><div class="ttname"><a href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#a95de0f5e70e83164dbd1b4c515565e84">greedy_algorithms::boruvkas_minimum_spanning_tree::findParent</a></div><div class="ttdeci">int findParent(std::vector&lt; std::pair&lt; int, int &gt; &gt; parent, const int v)</div><div class="ttdoc">Recursively returns the vertex&#39;s parent at the root of the tree.</div><div class="ttdef"><b>Definition</b> <a href="#l00047">boruvkas_minimum_spanning_tree.cpp:47</a></div></div>
<div class="ttc" id="aboruvkas__minimum__spanning__tree_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdoc">Main function.</div><div class="ttdef"><b>Definition</b> <a href="#l00224">boruvkas_minimum_spanning_tree.cpp:224</a></div></div>
<div class="ttc" id="anamespaceboruvkas__minimum__spanning__tree_html"><div class="ttname"><a href="../../d8/d64/namespaceboruvkas__minimum__spanning__tree.html">boruvkas_minimum_spanning_tree</a></div><div class="ttdoc">Functions for the [Borůvkas Algorithm](https://en.wikipedia.org/wiki/Borůvka's_algorithm) implementat...</div></div>
<div class="ttc" id="anamespaceboruvkas__minimum__spanning__tree_html"><div class="ttname"><a href="../../d8/d64/namespaceboruvkas__minimum__spanning__tree.html">boruvkas_minimum_spanning_tree</a></div><div class="ttdoc">Functions for the [Borůvkas Algorithm](https://en.wikipedia.org/wiki/Borůvka&#39;s_algorithm) implementat...</div></div>
<div class="ttc" id="anamespacegraph_html"><div class="ttname"><a href="../../df/dce/namespacegraph.html">graph</a></div><div class="ttdoc">Graph Algorithms.</div></div>
<div class="ttc" id="anamespacegreedy__algorithms_html"><div class="ttname"><a href="../../d2/d90/namespacegreedy__algorithms.html">greedy_algorithms</a></div><div class="ttdoc">for string class</div><div class="ttdef"><b>Definition</b> <a href="../../d9/d1f/binary__addition_8cpp_source.html#l00027">binary_addition.cpp:27</a></div></div>
</div><!-- fragment --></div><!-- contents -->
@@ -319,7 +320,7 @@ $(function(){initNavTree('d4/d6c/boruvkas__minimum__spanning__tree_8cpp_source.h
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_0eaa691bd54ab0922ca7f50599de6d22.html">greedy_algorithms</a></li><li class="navelem"><a class="el" href="../../d4/d6c/boruvkas__minimum__spanning__tree_8cpp.html">boruvkas_minimum_spanning_tree.cpp</a></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>