Documentation for 341ed50da8

This commit is contained in:
github-actions
2021-09-03 19:56:17 +00:00
parent 52d0c55145
commit 08e8eb037e
3432 changed files with 71392 additions and 72953 deletions

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: data_structures/list_array.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d00/list__array_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -94,12 +94,11 @@ $(document).ready(function(){initNavTree('d7/d00/list__array_8cpp.html','../../'
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">list_array.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">list_array.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p><a href="https://en.wikipedia.org/wiki/Dynamic_array">Dynamic Array</a>
<p><a href="https://en.wikipedia.org/wiki/Dynamic_array" target="_blank">Dynamic Array</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;array&gt;</code><br />
@@ -111,22 +110,22 @@ Include dependency graph for list_array.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html">data_structures::list_array::list</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure of List with supporting methods. <a href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:d5/d3c/namespacedata__structures"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3c/namespacedata__structures.html">data_structures</a></td></tr>
<tr class="memitem:d5/d3c/namespacedata__structures"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3c/namespacedata__structures.html">data_structures</a></td></tr>
<tr class="memdesc:d5/d3c/namespacedata__structures"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data Structures algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d9/d27/namespacelist__array"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d27/namespacelist__array.html">list_array</a></td></tr>
<tr class="memdesc:d9/d27/namespacelist__array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://en.wikipedia.org/wiki/Dynamic_array">Dynamic Array</a> algorithm. <br /></td></tr>
<tr class="memitem:d9/d27/namespacelist__array"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d27/namespacelist__array.html">list_array</a></td></tr>
<tr class="memdesc:d9/d27/namespacelist__array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://en.wikipedia.org/wiki/Dynamic_array" target="_blank">Dynamic Array</a> algorithm. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d00/list__array_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test implementations. <a href="../../d7/d00/list__array_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">More...</a><br /></td></tr>
@@ -136,13 +135,13 @@ Functions</h2></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a href="https://en.wikipedia.org/wiki/Dynamic_array">Dynamic Array</a> </p>
<p>The <a class="el" href="../../d9/d27/namespacelist__array.html" title="Functions for Dynamic Array algorithm.">list_array</a> is the implementation of list represented using array. We can perform basic CRUD operations as well as other operations like sorting etc.</p>
<div class="textblock"><p ><a href="https://en.wikipedia.org/wiki/Dynamic_array" target="_blank">Dynamic Array</a> </p>
<p >The <a class="el" href="../../d9/d27/namespacelist__array.html" title="Functions for Dynamic Array algorithm.">list_array</a> is the implementation of list represented using array. We can perform basic CRUD operations as well as other operations like sorting etc.</p>
<h3><a class="anchor" id="autotoc_md34"></a>
Algorithm</h3>
<p>It implements various method like insert, sort, search etc. efficiently. You can select the operation and methods will do the rest work for you. You can insert element, sort them in order, search efficiently, delete values and print the list. </p>
<p >It implements various method like insert, sort, search etc. efficiently. You can select the operation and methods will do the rest work for you. You can insert element, sort them in order, search efficiently, delete values and print the list. </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -160,10 +159,10 @@ Algorithm</h3>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="../../d7/d00/list__array_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// Execute the tests</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> {</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <a class="code hl_function" href="../../d7/d00/list__array_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// Execute the tests</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span>}</div>
<div class="ttc" id="alist__array_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d7/d00/list__array_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Test implementations.</div><div class="ttdef"><b>Definition:</b> list_array.cpp:205</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -174,7 +173,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -199,43 +198,43 @@ Here is the call graph for this function:</div>
<p>Test implementations. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html">data_structures::list_array::list</a> L;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">// Insert testing</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(11);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(12);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; assert(L.top == 2);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(15);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(10);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(12);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(20);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(18);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; assert(L.top == 7);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#ae5c15d93819c4e437ebb7a1b41f2d594">show</a>(); <span class="comment">// To print the array</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; </div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="comment">// Remove testing</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0499455a80156134cc79c98eabb376d9">remove</a>(12); <span class="comment">// Remove Duplicate value in the list</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0499455a80156134cc79c98eabb376d9">remove</a>(15); <span class="comment">// Remove the existing value in the list</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; assert(L.top == 5);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0499455a80156134cc79c98eabb376d9">remove</a>(50); <span class="comment">// Try to remove the non-existing value in the list</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; assert(L.top == 5);</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; </div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// LinearSearch testing</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; assert(L.search(11) == 0); <span class="comment">// search for the existing element</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; assert(L.search(12) == 2);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; assert(L.search(50) == -1); <span class="comment">// search for the non-existing element</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// Sort testing</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a39a712c8413b0d7861695ec019474469">sort</a>();</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; assert(L.isSorted == <span class="keyword">true</span>);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; L.<a class="code" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#ae5c15d93819c4e437ebb7a1b41f2d594">show</a>();</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; </div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">// BinarySearch testing</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; assert(L.search(11) == 1); <span class="comment">// search for the existing element</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; assert(L.search(12) == 2);</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; assert(L.search(50) == -1); <span class="comment">// search for the non-existing element</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> {</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <a class="code hl_struct" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html">data_structures::list_array::list</a> L;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="comment">// Insert testing</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(11);</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(12);</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> assert(L.top == 2);</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(15);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(10);</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(12);</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(20);</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">insert</a>(18);</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> assert(L.top == 7);</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#ae5c15d93819c4e437ebb7a1b41f2d594">show</a>(); <span class="comment">// To print the array</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="comment">// Remove testing</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0499455a80156134cc79c98eabb376d9">remove</a>(12); <span class="comment">// Remove Duplicate value in the list</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0499455a80156134cc79c98eabb376d9">remove</a>(15); <span class="comment">// Remove the existing value in the list</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> assert(L.top == 5);</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0499455a80156134cc79c98eabb376d9">remove</a>(50); <span class="comment">// Try to remove the non-existing value in the list</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> assert(L.top == 5);</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> </div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="comment">// LinearSearch testing</span></div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> assert(L.search(11) == 0); <span class="comment">// search for the existing element</span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> assert(L.search(12) == 2);</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> assert(L.search(50) == -1); <span class="comment">// search for the non-existing element</span></div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> </div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="comment">// Sort testing</span></div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a39a712c8413b0d7861695ec019474469">sort</a>();</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> assert(L.isSorted == <span class="keyword">true</span>);</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> L.<a class="code hl_function" href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#ae5c15d93819c4e437ebb7a1b41f2d594">show</a>();</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> </div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="comment">// BinarySearch testing</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> assert(L.search(11) == 1); <span class="comment">// search for the existing element</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> assert(L.search(12) == 2);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> assert(L.search(50) == -1); <span class="comment">// search for the non-existing element</span></div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span>}</div>
<div class="ttc" id="astructdata__structures_1_1list__array_1_1list_html"><div class="ttname"><a href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html">data_structures::list_array::list</a></div><div class="ttdoc">Structure of List with supporting methods.</div><div class="ttdef"><b>Definition:</b> list_array.cpp:32</div></div>
<div class="ttc" id="astructdata__structures_1_1list__array_1_1list_html_a0499455a80156134cc79c98eabb376d9"><div class="ttname"><a href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0499455a80156134cc79c98eabb376d9">data_structures::list_array::list::remove</a></div><div class="ttdeci">void remove(const uint64_t &amp;val)</div><div class="ttdoc">To remove the element from the list.</div><div class="ttdef"><b>Definition:</b> list_array.cpp:171</div></div>
<div class="ttc" id="astructdata__structures_1_1list__array_1_1list_html_a0f44d5e3a52d35f8ff23ace9569c6305"><div class="ttname"><a href="../../d5/dab/structdata__structures_1_1list__array_1_1list.html#a0f44d5e3a52d35f8ff23ace9569c6305">data_structures::list_array::list::insert</a></div><div class="ttdeci">void insert(const uint64_t &amp;val)</div><div class="ttdoc">Insert the new element in the list.</div><div class="ttdef"><b>Definition:</b> list_array.cpp:132</div></div>
@@ -256,7 +255,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_2e746e9d06bf2d8ff842208bcc6ebcfc.html">data_structures</a></li><li class="navelem"><a class="el" href="../../d7/d00/list__array_8cpp.html">list_array.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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,6 +1,6 @@
var list__array_8cpp =
[
[ "list", "d5/dab/structdata__structures_1_1list__array_1_1list.html", "d5/dab/structdata__structures_1_1list__array_1_1list" ],
[ "data_structures::list_array::list", "d5/dab/structdata__structures_1_1list__array_1_1list.html", "d5/dab/structdata__structures_1_1list__array_1_1list" ],
[ "main", "d7/d00/list__array_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
[ "test", "d7/d00/list__array_8cpp.html#aa8dca7b867074164d5f45b0f3851269d", null ]
];

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test Pages: 1 -->
<svg width="275pt" height="186pt"

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="349pt" height="186pt"

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: graph/bidirectional_dijkstra.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d07/bidirectional__dijkstra_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -94,12 +94,11 @@ $(document).ready(function(){initNavTree('d7/d07/bidirectional__dijkstra_8cpp.ht
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">bidirectional_dijkstra.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">bidirectional_dijkstra.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p><a href="https://www.coursera.org/learn/algorithms-on-graphs/lecture/7ml18/bidirectional-dijkstra">Bidirectional Dijkstra Shortest Path Algorithm</a>
<p><a href="https://www.coursera.org/learn/algorithms-on-graphs/lecture/7ml18/bidirectional-dijkstra" target="_blank">Bidirectional Dijkstra Shortest Path Algorithm</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
@@ -114,26 +113,26 @@ Include dependency graph for bidirectional_dijkstra.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:df/dce/namespacegraph"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html">graph</a></td></tr>
<tr class="memitem:df/dce/namespacegraph"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html">graph</a></td></tr>
<tr class="memdesc:df/dce/namespacegraph"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../dc/d61/classgraph_1_1_graph.html">Graph</a> Algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d4/d13/namespacebidirectional__dijkstra"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d13/namespacebidirectional__dijkstra.html">bidirectional_dijkstra</a></td></tr>
<tr class="memdesc:d4/d13/namespacebidirectional__dijkstra"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://www.coursera.org/learn/algorithms-on-graphs/lecture/7ml18/bidirectional-dijkstra">Bidirectional Dijkstra Shortest Path</a> algorithm. <br /></td></tr>
<tr class="memitem:d4/d13/namespacebidirectional__dijkstra"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d13/namespacebidirectional__dijkstra.html">bidirectional_dijkstra</a></td></tr>
<tr class="memdesc:d4/d13/namespacebidirectional__dijkstra"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://www.coursera.org/learn/algorithms-on-graphs/lecture/7ml18/bidirectional-dijkstra" target="_blank">Bidirectional Dijkstra Shortest Path</a> algorithm. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a6f92fe022b7e5d453f7257d763b6f3e2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt;&gt;&gt; *adj1, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt;&gt;&gt; *adj2, uint64_t u, uint64_t v, uint64_t w)</td></tr>
<tr class="memdesc:a6f92fe022b7e5d453f7257d763b6f3e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function that add edge between two nodes or vertices of graph. <a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">More...</a><br /></td></tr>
<tr class="separator:a6f92fe022b7e5d453f7257d763b6f3e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab322409d0015c023d91c67b5b2679257"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#ab322409d0015c023d91c67b5b2679257">graph::bidirectional_dijkstra::Shortest_Path_Distance</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint64_t &gt; &amp;workset_, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint64_t &gt;&gt; &amp;distance_)</td></tr>
<tr class="memdesc:ab322409d0015c023d91c67b5b2679257"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the shortest distance from the source to the target if there is path between vertices 's' and 't'. <a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#ab322409d0015c023d91c67b5b2679257">More...</a><br /></td></tr>
<tr class="separator:ab322409d0015c023d91c67b5b2679257"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3848a7213562b47084585499d3642a5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#aa3848a7213562b47084585499d3642a5">graph::bidirectional_dijkstra::Bidijkstra</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt;&gt;&gt; *adj1, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt;&gt;&gt; *adj2, uint64_t s, uint64_t t)</td></tr>
<tr class="memdesc:aa3848a7213562b47084585499d3642a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and returns the shortest distance of target from the source. <a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#aa3848a7213562b47084585499d3642a5">More...</a><br /></td></tr>
<tr class="separator:aa3848a7213562b47084585499d3642a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69172365aebde9be1997157f6f80e0cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt; &gt; &gt; *adj1, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt; &gt; &gt; *adj2, uint64_t u, uint64_t v, uint64_t w)</td></tr>
<tr class="memdesc:a69172365aebde9be1997157f6f80e0cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function that add edge between two nodes or vertices of graph. <a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">More...</a><br /></td></tr>
<tr class="separator:a69172365aebde9be1997157f6f80e0cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22f1b7277e1dd4190f25014b48487ce6"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a22f1b7277e1dd4190f25014b48487ce6">graph::bidirectional_dijkstra::Shortest_Path_Distance</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint64_t &gt; &amp;workset_, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint64_t &gt; &gt; &amp;distance_)</td></tr>
<tr class="memdesc:a22f1b7277e1dd4190f25014b48487ce6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the shortest distance from the source to the target if there is path between vertices 's' and 't'. <a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a22f1b7277e1dd4190f25014b48487ce6">More...</a><br /></td></tr>
<tr class="separator:a22f1b7277e1dd4190f25014b48487ce6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b2df3d52a403ad46523ab90d3a723c1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a1b2df3d52a403ad46523ab90d3a723c1">graph::bidirectional_dijkstra::Bidijkstra</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt; &gt; &gt; *adj1, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt; &gt; &gt; *adj2, uint64_t s, uint64_t t)</td></tr>
<tr class="memdesc:a1b2df3d52a403ad46523ab90d3a723c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and returns the shortest distance of target from the source. <a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a1b2df3d52a403ad46523ab90d3a723c1">More...</a><br /></td></tr>
<tr class="separator:a1b2df3d52a403ad46523ab90d3a723c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a483bb8ccf42aaf7375a83e91490eda1e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a> ()</td></tr>
<tr class="memdesc:a483bb8ccf42aaf7375a83e91490eda1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to test the provided algorithm above. <a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">More...</a><br /></td></tr>
<tr class="separator:a483bb8ccf42aaf7375a83e91490eda1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -141,19 +140,19 @@ Functions</h2></td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">More...</a><br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a330a2b0a904f01802ada1f8f3b28e76c"><td class="memItemLeft" align="right" valign="top">constexpr int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a330a2b0a904f01802ada1f8f3b28e76c">INF</a> = <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/numeric_limits.html">std::numeric_limits</a>&lt;int64_t&gt;::max()</td></tr>
<tr class="memdesc:a330a2b0a904f01802ada1f8f3b28e76c"><td class="mdescLeft">&#160;</td><td class="mdescRight">for store the graph, the distances, and the path <a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a330a2b0a904f01802ada1f8f3b28e76c">More...</a><br /></td></tr>
<tr class="separator:a330a2b0a904f01802ada1f8f3b28e76c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a href="https://www.coursera.org/learn/algorithms-on-graphs/lecture/7ml18/bidirectional-dijkstra">Bidirectional Dijkstra Shortest Path Algorithm</a> </p>
<dl class="section author"><dt>Author</dt><dd><a href="http://github.com/Marinovsky">Marinovksy</a></dd></dl>
<div class="textblock"><p ><a href="https://www.coursera.org/learn/algorithms-on-graphs/lecture/7ml18/bidirectional-dijkstra" target="_blank">Bidirectional Dijkstra Shortest Path Algorithm</a> </p>
<dl class="section author"><dt>Author</dt><dd><a href="http://github.com/Marinovsky" target="_blank">Marinovksy</a></dd></dl>
<p>This is basically the same Dijkstra Algorithm but faster because it goes from the source to the target and from target to the source and stops when finding a vertex visited already by the direct search or the reverse one. Here some simulations of it: <a href="https://www.youtube.com/watch?v=DINCL5cd_w0&t=24s">https://www.youtube.com/watch?v=DINCL5cd_w0&amp;t=24s</a> </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a6f92fe022b7e5d453f7257d763b6f3e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f92fe022b7e5d453f7257d763b6f3e2">&#9670;&nbsp;</a></span>addEdge()</h2>
<a id="a69172365aebde9be1997157f6f80e0cf" name="a69172365aebde9be1997157f6f80e0cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69172365aebde9be1997157f6f80e0cf">&#9670;&nbsp;</a></span>addEdge()</h2>
<div class="memitem">
<div class="memproto">
@@ -161,13 +160,13 @@ Variables</h2></td></tr>
<tr>
<td class="memname">void graph::bidirectional_dijkstra::addEdge </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt;&gt;&gt; *&#160;</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt; &gt; &gt; *&#160;</td>
<td class="paramname"><em>adj1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt;&gt;&gt; *&#160;</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt; &gt; &gt; *&#160;</td>
<td class="paramname"><em>adj2</em>, </td>
</tr>
<tr>
@@ -206,23 +205,23 @@ Variables</h2></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; (*adj1)[u - 1].push_back(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(v - 1, w));</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; (*adj2)[v - 1].push_back(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(u - 1, w));</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// (*adj)[v - 1].push_back(std::make_pair(u - 1, w));</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> (*adj1)[u - 1].push_back(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(v - 1, w));</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> (*adj2)[v - 1].push_back(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(u - 1, w));</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// (*adj)[v - 1].push_back(std::make_pair(u - 1, w));</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span>}</div>
<div class="ttc" id="amake_pair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a></div><div class="ttdeci">T make_pair(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d07/bidirectional__dijkstra_8cpp_a6f92fe022b7e5d453f7257d763b6f3e2_cgraph.svg" width="303" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d07/bidirectional__dijkstra_8cpp_a69172365aebde9be1997157f6f80e0cf_cgraph.svg" width="303" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="aa3848a7213562b47084585499d3642a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3848a7213562b47084585499d3642a5">&#9670;&nbsp;</a></span>Bidijkstra()</h2>
<a id="a1b2df3d52a403ad46523ab90d3a723c1" name="a1b2df3d52a403ad46523ab90d3a723c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b2df3d52a403ad46523ab90d3a723c1">&#9670;&nbsp;</a></span>Bidijkstra()</h2>
<div class="memitem">
<div class="memproto">
@@ -230,13 +229,13 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int graph::bidirectional_dijkstra::Bidijkstra </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt;&gt;&gt; *&#160;</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt; &gt; &gt; *&#160;</td>
<td class="paramname"><em>adj1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt;&gt;&gt; *&#160;</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint64_t, uint64_t &gt; &gt; &gt; *&#160;</td>
<td class="paramname"><em>adj2</em>, </td>
</tr>
<tr>
@@ -270,133 +269,133 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>shortest distance if target is reachable from source else -1 in case if target is not reachable from source. </dd></dl>
<p>n denotes the number of vertices in graph</p>
<p>setting all the distances initially to INF</p>
<p>creating a a vector of min heap using priority queue pq[0] contains the min heap for the direct search pq[1] contains the min heap for the reverse search</p>
<p>first element of pair contains the distance second element of pair contains the vertex</p>
<p>vector for store the nodes or vertices in the shortest path</p>
<p>vector for store the nodes or vertices visited</p>
<p>pushing the source vertex 's' with 0 distance in pq[0] min heap</p>
<p>marking the distance of source as 0</p>
<p>pushing the target vertex 't' with 0 distance in pq[1] min heap</p>
<p>marking the distance of target as 0</p>
<p>direct search</p>
<p>second element of pair denotes the node / vertex</p>
<p>first element of pair denotes the distance</p>
<p>for all the reachable vertex from the currently exploring vertex we will try to minimize the distance</p>
<p>minimizing distances</p>
<p>check if currentNode has already been visited</p>
<p>reversed search</p>
<p>second element of pair denotes the node / vertex</p>
<p>first element of pair denotes the distance</p>
<p>for all the reachable vertex from the currently exploring vertex we will try to minimize the distance</p>
<p>minimizing distances</p>
<p>check if currentNode has already been visited</p>
<div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {<span class="comment"></span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> /// n denotes the number of vertices in graph</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"></span> uint64_t n = adj1-&gt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"> /// setting all the distances initially to INF</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;uint64_t&gt;</a>&gt; dist(2, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a>(n, <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a330a2b0a904f01802ada1f8f3b28e76c">INF</a>));</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> /// creating a a vector of min heap using priority queue</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"> /// pq[0] contains the min heap for the direct search</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> /// pq[1] contains the min heap for the reverse search</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"></span><span class="comment"></span> </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> /// first element of pair contains the distance</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"> /// second element of pair contains the vertex</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/priority_queue.html">std::priority_queue&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>,</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;,</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/functional/greater.html">std::greater&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt;&gt;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; pq(2);<span class="comment"></span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment"> /// vector for store the nodes or vertices in the shortest path</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> workset(n);<span class="comment"></span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"> /// vector for store the nodes or vertices visited</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a> visited(n);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> /// pushing the source vertex &#39;s&#39; with 0 distance in pq[0] min heap</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"></span> pq[0].push(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(0, s));</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> /// marking the distance of source as 0</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"></span> dist[0][s] = 0;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> /// pushing the target vertex &#39;t&#39; with 0 distance in pq[1] min heap</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"></span> pq[1].push(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(0, t));</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> /// marking the distance of target as 0</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"></span> dist[1][t] = 0;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">while</span> (<span class="keyword">true</span>) {<span class="comment"></span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> /// direct search</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// If pq[0].size() is equal to zero then the node/ vertex is not</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// reachable from s</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span> (pq[0].size() == 0) {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"> /// second element of pair denotes the node / vertex</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"></span> uint64_t currentNode = pq[0].top().second;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> /// first element of pair denotes the distance</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"></span> uint64_t currentDist = pq[0].top().first;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; pq[0].pop();</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"> /// for all the reachable vertex from the currently exploring vertex</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> /// we will try to minimize the distance</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"></span> <span class="keywordflow">for</span> (<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;int, int&gt;</a> edge : (*adj1)[currentNode]) {<span class="comment"></span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"> /// minimizing distances</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"></span> <span class="keywordflow">if</span> (currentDist + edge.second &lt; dist[0][edge.first]) {</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; dist[0][edge.first] = currentDist + edge.second;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; pq[0].push(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(dist[0][edge.first], edge.first));</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// store the processed node/ vertex</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; workset.push_back(currentNode);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> /// check if currentNode has already been visited</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"></span> <span class="keywordflow">if</span> (visited[currentNode] == 1) {</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#ab322409d0015c023d91c67b5b2679257">Shortest_Path_Distance</a>(workset, dist);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; visited[currentNode] = <span class="keyword">true</span>;<span class="comment"></span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> /// reversed search</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// If pq[1].size() is equal to zero then the node/ vertex is not</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">// reachable from t</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span> (pq[1].size() == 0) {</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> /// second element of pair denotes the node / vertex</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"></span> currentNode = pq[1].top().second;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> /// first element of pair denotes the distance</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment"></span> currentDist = pq[1].top().first;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; pq[1].pop();</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment"> /// for all the reachable vertex from the currently exploring vertex</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment"> /// we will try to minimize the distance</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment"></span> <span class="keywordflow">for</span> (<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;int, int&gt;</a> edge : (*adj2)[currentNode]) {<span class="comment"></span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment"> /// minimizing distances</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment"></span> <span class="keywordflow">if</span> (currentDist + edge.second &lt; dist[1][edge.first]) {</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; dist[1][edge.first] = currentDist + edge.second;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; pq[1].push(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(dist[1][edge.first], edge.first));</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// store the processed node/ vertex</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; workset.push_back(currentNode);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> /// check if currentNode has already been visited</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"></span> <span class="keywordflow">if</span> (visited[currentNode] == 1) {</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#ab322409d0015c023d91c67b5b2679257">Shortest_Path_Distance</a>(workset, dist);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; visited[currentNode] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;}</div>
<p >n denotes the number of vertices in graph</p>
<p >setting all the distances initially to INF</p>
<p >creating a a vector of min heap using priority queue pq[0] contains the min heap for the direct search pq[1] contains the min heap for the reverse search</p>
<p >first element of pair contains the distance second element of pair contains the vertex</p>
<p >vector for store the nodes or vertices in the shortest path</p>
<p >vector for store the nodes or vertices visited</p>
<p >pushing the source vertex 's' with 0 distance in pq[0] min heap</p>
<p >marking the distance of source as 0</p>
<p >pushing the target vertex 't' with 0 distance in pq[1] min heap</p>
<p >marking the distance of target as 0</p>
<p >direct search</p>
<p >second element of pair denotes the node / vertex</p>
<p >first element of pair denotes the distance</p>
<p >for all the reachable vertex from the currently exploring vertex we will try to minimize the distance</p>
<p >minimizing distances</p>
<p >check if currentNode has already been visited</p>
<p >reversed search</p>
<p >second element of pair denotes the node / vertex</p>
<p >first element of pair denotes the distance</p>
<p >for all the reachable vertex from the currently exploring vertex we will try to minimize the distance</p>
<p >minimizing distances</p>
<p >check if currentNode has already been visited</p>
<div class="fragment"><div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> {<span class="comment"></span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment"> /// n denotes the number of vertices in graph</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment"></span> uint64_t n = adj1-&gt;<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment"></span> </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment"> /// setting all the distances initially to INF</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment"></span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;uint64_t&gt;</a>&gt; dist(2, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a>(n, <a class="code hl_variable" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a330a2b0a904f01802ada1f8f3b28e76c">INF</a>));</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment"></span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment"> /// creating a a vector of min heap using priority queue</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment"> /// pq[0] contains the min heap for the direct search</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment"> /// pq[1] contains the min heap for the reverse search</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment"></span><span class="comment"></span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment"> /// first element of pair contains the distance</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> /// second element of pair contains the vertex</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"></span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/priority_queue.html">std::priority_queue&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>,</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;,</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/functional/greater.html">std::greater&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt;&gt;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> pq(2);<span class="comment"></span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment"> /// vector for store the nodes or vertices in the shortest path</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment"></span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> workset(n);<span class="comment"></span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment"> /// vector for store the nodes or vertices visited</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment"></span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a> visited(n);</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"></span> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment"> /// pushing the source vertex &#39;s&#39; with 0 distance in pq[0] min heap</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"></span> pq[0].push(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(0, s));</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment"></span> </div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment"> /// marking the distance of source as 0</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment"></span> dist[0][s] = 0;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment"></span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment"> /// pushing the target vertex &#39;t&#39; with 0 distance in pq[1] min heap</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment"></span> pq[1].push(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(0, t));</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment"></span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment"> /// marking the distance of target as 0</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment"></span> dist[1][t] = 0;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {<span class="comment"></span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"> /// direct search</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment"></span> </div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// If pq[0].size() is equal to zero then the node/ vertex is not</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// reachable from s</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">if</span> (pq[0].size() == 0) {</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> }<span class="comment"></span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment"> /// second element of pair denotes the node / vertex</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="comment"></span> uint64_t currentNode = pq[0].top().second;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment"></span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment"> /// first element of pair denotes the distance</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="comment"></span> uint64_t currentDist = pq[0].top().first;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> pq[0].pop();</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="comment"></span> </div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="comment"> /// for all the reachable vertex from the currently exploring vertex</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="comment"> /// we will try to minimize the distance</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment"></span> <span class="keywordflow">for</span> (<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;int, int&gt;</a> edge : (*adj1)[currentNode]) {<span class="comment"></span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment"> /// minimizing distances</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment"></span> <span class="keywordflow">if</span> (currentDist + edge.second &lt; dist[0][edge.first]) {</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> dist[0][edge.first] = currentDist + edge.second;</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> pq[0].push(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(dist[0][edge.first], edge.first));</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> }</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> }</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// store the processed node/ vertex</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> workset.push_back(currentNode);</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="comment"></span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="comment"> /// check if currentNode has already been visited</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="comment"></span> <span class="keywordflow">if</span> (visited[currentNode] == 1) {</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a22f1b7277e1dd4190f25014b48487ce6">Shortest_Path_Distance</a>(workset, dist);</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> }</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> visited[currentNode] = <span class="keyword">true</span>;<span class="comment"></span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="comment"> /// reversed search</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="comment"></span> </div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// If pq[1].size() is equal to zero then the node/ vertex is not</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="comment">// reachable from t</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">if</span> (pq[1].size() == 0) {</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> }<span class="comment"></span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="comment"> /// second element of pair denotes the node / vertex</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="comment"></span> currentNode = pq[1].top().second;</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="comment"></span> </div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="comment"> /// first element of pair denotes the distance</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="comment"></span> currentDist = pq[1].top().first;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> pq[1].pop();</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="comment"></span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="comment"> /// for all the reachable vertex from the currently exploring vertex</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="comment"> /// we will try to minimize the distance</span></div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span><span class="comment"></span> <span class="keywordflow">for</span> (<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;int, int&gt;</a> edge : (*adj2)[currentNode]) {<span class="comment"></span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span><span class="comment"> /// minimizing distances</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="comment"></span> <span class="keywordflow">if</span> (currentDist + edge.second &lt; dist[1][edge.first]) {</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> dist[1][edge.first] = currentDist + edge.second;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> pq[1].push(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(dist[1][edge.first], edge.first));</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> }</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> }</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// store the processed node/ vertex</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> workset.push_back(currentNode);</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span><span class="comment"></span> </div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="comment"> /// check if currentNode has already been visited</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="comment"></span> <span class="keywordflow">if</span> (visited[currentNode] == 1) {</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a22f1b7277e1dd4190f25014b48487ce6">Shortest_Path_Distance</a>(workset, dist);</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> }</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> visited[currentNode] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> }</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span>}</div>
<div class="ttc" id="abidirectional__dijkstra_8cpp_html_a22f1b7277e1dd4190f25014b48487ce6"><div class="ttname"><a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a22f1b7277e1dd4190f25014b48487ce6">graph::bidirectional_dijkstra::Shortest_Path_Distance</a></div><div class="ttdeci">uint64_t Shortest_Path_Distance(const std::vector&lt; uint64_t &gt; &amp;workset_, const std::vector&lt; std::vector&lt; uint64_t &gt; &gt; &amp;distance_)</div><div class="ttdoc">This function returns the shortest distance from the source to the target if there is path between ve...</div><div class="ttdef"><b>Definition:</b> bidirectional_dijkstra.cpp:61</div></div>
<div class="ttc" id="abidirectional__dijkstra_8cpp_html_a330a2b0a904f01802ada1f8f3b28e76c"><div class="ttname"><a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a330a2b0a904f01802ada1f8f3b28e76c">INF</a></div><div class="ttdeci">constexpr int64_t INF</div><div class="ttdoc">for store the graph, the distances, and the path</div><div class="ttdef"><b>Definition:</b> bidirectional_dijkstra.cpp:23</div></div>
<div class="ttc" id="abidirectional__dijkstra_8cpp_html_ab322409d0015c023d91c67b5b2679257"><div class="ttname"><a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#ab322409d0015c023d91c67b5b2679257">graph::bidirectional_dijkstra::Shortest_Path_Distance</a></div><div class="ttdeci">uint64_t Shortest_Path_Distance(const std::vector&lt; uint64_t &gt; &amp;workset_, const std::vector&lt; std::vector&lt; uint64_t &gt;&gt; &amp;distance_)</div><div class="ttdoc">This function returns the shortest distance from the source to the target if there is path between ve...</div><div class="ttdef"><b>Definition:</b> bidirectional_dijkstra.cpp:61</div></div>
<div class="ttc" id="agreater_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/functional/greater.html">std::greater</a></div></div>
<div class="ttc" id="apair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a></div></div>
<div class="ttc" id="apriority_queue_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/priority_queue.html">std::priority_queue</a></div></div>
@@ -405,13 +404,13 @@ Here is the call graph for this function:</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d07/bidirectional__dijkstra_8cpp_aa3848a7213562b47084585499d3642a5_cgraph.svg" width="303" height="76"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d07/bidirectional__dijkstra_8cpp_a1b2df3d52a403ad46523ab90d3a723c1_cgraph.svg" width="303" height="76"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -429,57 +428,57 @@ Here is the call graph for this function:</div>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; {</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// running predefined tests</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; uint64_t vertices = uint64_t();</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; uint64_t edges = uint64_t();</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the number of vertices : &quot;</span>;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; vertices;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the number of edges : &quot;</span>;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; edges;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; </div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt; adj1(</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; vertices, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;());</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt; adj2(</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; vertices, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;());</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; </div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; uint64_t u = uint64_t(), v = uint64_t(), w = uint64_t();</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the edges by three integers in this form: u v w &quot;</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Example: if there is and edge between node 1 and node 4 with &quot;</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="stringliteral">&quot;weight 7 enter: 1 4 7, and then press enter&quot;</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">while</span> (edges--) {</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; u &gt;&gt; v &gt;&gt; w;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj1, &amp;adj2, u, v, w);</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span> (edges != 0) {</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the next edge&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; </div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; uint64_t s = uint64_t(), t = uint64_t();</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; &lt;&lt; <span class="stringliteral">&quot;Enter the source node and the target node separated by a space&quot;</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Example: If the source node is 5 and the target node is 6 &quot;</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="stringliteral">&quot;enter: 5 6 and press enter&quot;</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; s &gt;&gt; t;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordtype">int</span> dist =</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#aa3848a7213562b47084585499d3642a5">graph::bidirectional_dijkstra::Bidijkstra</a>(&amp;adj1, &amp;adj2, s - 1, t - 1);</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span> (dist == -1) {</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Target not reachable from source&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Shortest Path Distance : &quot;</span> &lt;&lt; dist &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; </div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> {</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// running predefined tests</span></div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> uint64_t vertices = uint64_t();</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> uint64_t edges = uint64_t();</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the number of vertices : &quot;</span>;</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; vertices;</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the number of edges : &quot;</span>;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; edges;</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> </div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt; adj1(</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> vertices, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;());</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt; adj2(</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> vertices, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;());</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> </div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> uint64_t u = uint64_t(), v = uint64_t(), w = uint64_t();</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the edges by three integers in this form: u v w &quot;</span></div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Example: if there is and edge between node 1 and node 4 with &quot;</span></div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="stringliteral">&quot;weight 7 enter: 1 4 7, and then press enter&quot;</span></div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">while</span> (edges--) {</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; u &gt;&gt; v &gt;&gt; w;</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj1, &amp;adj2, u, v, w);</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">if</span> (edges != 0) {</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the next edge&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> }</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> }</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> </div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> uint64_t s = uint64_t(), t = uint64_t();</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> &lt;&lt; <span class="stringliteral">&quot;Enter the source node and the target node separated by a space&quot;</span></div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Example: If the source node is 5 and the target node is 6 &quot;</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="stringliteral">&quot;enter: 5 6 and press enter&quot;</span></div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; s &gt;&gt; t;</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordtype">int</span> dist =</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a1b2df3d52a403ad46523ab90d3a723c1">graph::bidirectional_dijkstra::Bidijkstra</a>(&amp;adj1, &amp;adj2, s - 1, t - 1);</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <span class="keywordflow">if</span> (dist == -1) {</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Target not reachable from source&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Shortest Path Distance : &quot;</span> &lt;&lt; dist &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> }</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> </div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span>}</div>
<div class="ttc" id="abasic_istream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a></div></div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="abidirectional__dijkstra_8cpp_html_a1b2df3d52a403ad46523ab90d3a723c1"><div class="ttname"><a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a1b2df3d52a403ad46523ab90d3a723c1">graph::bidirectional_dijkstra::Bidijkstra</a></div><div class="ttdeci">int Bidijkstra(std::vector&lt; std::vector&lt; std::pair&lt; uint64_t, uint64_t &gt; &gt; &gt; *adj1, std::vector&lt; std::vector&lt; std::pair&lt; uint64_t, uint64_t &gt; &gt; &gt; *adj2, uint64_t s, uint64_t t)</div><div class="ttdoc">Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return...</div><div class="ttdef"><b>Definition:</b> bidirectional_dijkstra.cpp:86</div></div>
<div class="ttc" id="abidirectional__dijkstra_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Function to test the provided algorithm above.</div><div class="ttdef"><b>Definition:</b> bidirectional_dijkstra.cpp:199</div></div>
<div class="ttc" id="abidirectional__dijkstra_8cpp_html_a6f92fe022b7e5d453f7257d763b6f3e2"><div class="ttname"><a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a></div><div class="ttdeci">void addEdge(std::vector&lt; std::vector&lt; std::pair&lt; uint64_t, uint64_t &gt;&gt;&gt; *adj1, std::vector&lt; std::vector&lt; std::pair&lt; uint64_t, uint64_t &gt;&gt;&gt; *adj2, uint64_t u, uint64_t v, uint64_t w)</div><div class="ttdoc">Function that add edge between two nodes or vertices of graph.</div><div class="ttdef"><b>Definition:</b> bidirectional_dijkstra.cpp:45</div></div>
<div class="ttc" id="abidirectional__dijkstra_8cpp_html_aa3848a7213562b47084585499d3642a5"><div class="ttname"><a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#aa3848a7213562b47084585499d3642a5">graph::bidirectional_dijkstra::Bidijkstra</a></div><div class="ttdeci">int Bidijkstra(std::vector&lt; std::vector&lt; std::pair&lt; uint64_t, uint64_t &gt;&gt;&gt; *adj1, std::vector&lt; std::vector&lt; std::pair&lt; uint64_t, uint64_t &gt;&gt;&gt; *adj2, uint64_t s, uint64_t t)</div><div class="ttdoc">Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return...</div><div class="ttdef"><b>Definition:</b> bidirectional_dijkstra.cpp:86</div></div>
<div class="ttc" id="abidirectional__dijkstra_8cpp_html_a69172365aebde9be1997157f6f80e0cf"><div class="ttname"><a href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a></div><div class="ttdeci">void addEdge(std::vector&lt; std::vector&lt; std::pair&lt; uint64_t, uint64_t &gt; &gt; &gt; *adj1, std::vector&lt; std::vector&lt; std::pair&lt; uint64_t, uint64_t &gt; &gt; &gt; *adj2, uint64_t u, uint64_t v, uint64_t w)</div><div class="ttdoc">Function that add edge between two nodes or vertices of graph.</div><div class="ttdef"><b>Definition:</b> bidirectional_dijkstra.cpp:45</div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -490,8 +489,8 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ab322409d0015c023d91c67b5b2679257"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab322409d0015c023d91c67b5b2679257">&#9670;&nbsp;</a></span>Shortest_Path_Distance()</h2>
<a id="a22f1b7277e1dd4190f25014b48487ce6" name="a22f1b7277e1dd4190f25014b48487ce6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22f1b7277e1dd4190f25014b48487ce6">&#9670;&nbsp;</a></span>Shortest_Path_Distance()</h2>
<div class="memitem">
<div class="memproto">
@@ -505,7 +504,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint64_t &gt;&gt; &amp;&#160;</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint64_t &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>distance_</em>&#160;</td>
</tr>
<tr>
@@ -524,26 +523,26 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; int64_t <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/distance.html">distance</a> = <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a330a2b0a904f01802ada1f8f3b28e76c">INF</a>;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">for</span> (uint64_t i : workset_) {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span> (distance_[0][i] + distance_[1][i] &lt; distance) {</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/distance.html">distance</a> = distance_[0][i] + distance_[1][i];</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/distance.html">distance</a>;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> int64_t <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/distance.html">distance</a> = <a class="code hl_variable" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a330a2b0a904f01802ada1f8f3b28e76c">INF</a>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">for</span> (uint64_t i : workset_) {</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">if</span> (distance_[0][i] + distance_[1][i] &lt; distance) {</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/distance.html">distance</a> = distance_[0][i] + distance_[1][i];</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> }</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/distance.html">distance</a>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>}</div>
<div class="ttc" id="adistance_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a></div><div class="ttdeci">T distance(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d07/bidirectional__dijkstra_8cpp_ab322409d0015c023d91c67b5b2679257_cgraph.svg" width="175" height="91"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d07/bidirectional__dijkstra_8cpp_a22f1b7277e1dd4190f25014b48487ce6_cgraph.svg" width="175" height="91"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a483bb8ccf42aaf7375a83e91490eda1e"></a>
<a id="a483bb8ccf42aaf7375a83e91490eda1e" name="a483bb8ccf42aaf7375a83e91490eda1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a483bb8ccf42aaf7375a83e91490eda1e">&#9670;&nbsp;</a></span>tests()</h2>
<div class="memitem">
@@ -568,50 +567,50 @@ Here is the call graph for this function:</div>
<p>Function to test the provided algorithm above. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiatinig Predefined Tests...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiating Test 1...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt; adj1_1(</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; 4, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;());</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt; adj1_2(</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; 4, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;());</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj1_1, &amp;adj1_2, 1, 2, 1);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj1_1, &amp;adj1_2, 4, 1, 2);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj1_1, &amp;adj1_2, 2, 3, 2);</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj1_1, &amp;adj1_2, 1, 3, 5);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; uint64_t s = 1, t = 3;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; assert(graph::bidirectional_dijkstra::Bidijkstra(&amp;adj1_1, &amp;adj1_2, s - 1,</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; t - 1) == 3);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1 Passed...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; s = 4, t = 3;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiating Test 2...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; assert(graph::bidirectional_dijkstra::Bidijkstra(&amp;adj1_1, &amp;adj1_2, s - 1,</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; t - 1) == 5);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2 Passed...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; </div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt; adj2_1(</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; 5, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;());</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt; adj2_2(</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; 5, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;());</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 1, 2, 4);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 1, 3, 2);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 2, 3, 2);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 3, 2, 1);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 2, 4, 2);</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 3, 5, 4);</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 5, 4, 1);</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 2, 5, 3);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 3, 4, 4);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; </div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; s = 1, t = 5;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiating Test 3...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; assert(graph::bidirectional_dijkstra::Bidijkstra(&amp;adj2_1, &amp;adj2_2, s - 1,</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; t - 1) == 6);</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3 Passed...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All Test Passed...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> {</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiatinig Predefined Tests...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiating Test 1...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt; adj1_1(</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> 4, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;());</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt; adj1_2(</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> 4, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;());</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj1_1, &amp;adj1_2, 1, 2, 1);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj1_1, &amp;adj1_2, 4, 1, 2);</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj1_1, &amp;adj1_2, 2, 3, 2);</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj1_1, &amp;adj1_2, 1, 3, 5);</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> </div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> uint64_t s = 1, t = 3;</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> assert(graph::bidirectional_dijkstra::Bidijkstra(&amp;adj1_1, &amp;adj1_2, s - 1,</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> t - 1) == 3);</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1 Passed...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> </div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> s = 4, t = 3;</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiating Test 2...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> assert(graph::bidirectional_dijkstra::Bidijkstra(&amp;adj1_1, &amp;adj1_2, s - 1,</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> t - 1) == 5);</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2 Passed...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt; adj2_1(</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> 5, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;());</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;&gt; adj2_2(</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> 5, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint64_t, uint64_t&gt;</a>&gt;());</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 1, 2, 4);</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 1, 3, 2);</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 2, 3, 2);</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 3, 2, 1);</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 2, 4, 2);</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 3, 5, 4);</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 5, 4, 1);</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 2, 5, 3);</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <a class="code hl_function" href="../../d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf">graph::bidirectional_dijkstra::addEdge</a>(&amp;adj2_1, &amp;adj2_2, 3, 4, 4);</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> s = 1, t = 5;</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiating Test 3...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> assert(graph::bidirectional_dijkstra::Bidijkstra(&amp;adj2_1, &amp;adj2_2, s - 1,</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> t - 1) == 6);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3 Passed...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All Test Passed...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -622,7 +621,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a330a2b0a904f01802ada1f8f3b28e76c"></a>
<a id="a330a2b0a904f01802ada1f8f3b28e76c" name="a330a2b0a904f01802ada1f8f3b28e76c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a330a2b0a904f01802ada1f8f3b28e76c">&#9670;&nbsp;</a></span>INF</h2>
<div class="memitem">
@@ -643,7 +642,7 @@ Here is the call graph for this function:</div>
</div><div class="memdoc">
<p>for store the graph, the distances, and the path </p>
<p>for assert for io operations for variable INF for the priority_queue of distances for make_pair function </p>
<p >for assert for io operations for variable INF for the priority_queue of distances for make_pair function </p>
</div>
</div>
@@ -653,7 +652,7 @@ Here is the call graph for this function:</div>
<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"><a class="el" href="../../d7/d07/bidirectional__dijkstra_8cpp.html">bidirectional_dijkstra.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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,9 +1,9 @@
var bidirectional__dijkstra_8cpp =
[
[ "addEdge", "d7/d07/bidirectional__dijkstra_8cpp.html#a6f92fe022b7e5d453f7257d763b6f3e2", null ],
[ "Bidijkstra", "d7/d07/bidirectional__dijkstra_8cpp.html#aa3848a7213562b47084585499d3642a5", null ],
[ "addEdge", "d7/d07/bidirectional__dijkstra_8cpp.html#a69172365aebde9be1997157f6f80e0cf", null ],
[ "Bidijkstra", "d7/d07/bidirectional__dijkstra_8cpp.html#a1b2df3d52a403ad46523ab90d3a723c1", null ],
[ "main", "d7/d07/bidirectional__dijkstra_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
[ "Shortest_Path_Distance", "d7/d07/bidirectional__dijkstra_8cpp.html#ab322409d0015c023d91c67b5b2679257", null ],
[ "Shortest_Path_Distance", "d7/d07/bidirectional__dijkstra_8cpp.html#a22f1b7277e1dd4190f25014b48487ce6", null ],
[ "tests", "d7/d07/bidirectional__dijkstra_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e", null ],
[ "INF", "d7/d07/bidirectional__dijkstra_8cpp.html#a330a2b0a904f01802ada1f8f3b28e76c", null ]
];

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: graph::bidirectional_dijkstra::Bidijkstra Pages: 1 -->
<svg width="227pt" height="57pt"

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: graph::bidirectional_dijkstra::Shortest_Path_Distance Pages: 1 -->
<svg width="131pt" height="68pt"

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: tests Pages: 1 -->
<svg width="136pt" height="28pt"

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: graph::bidirectional_dijkstra::addEdge Pages: 1 -->
<svg width="227pt" height="39pt"

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="210pt" height="47pt"

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: trie_using_hashmap Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d0a/namespacetrie__using__hashmap.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,22 +90,21 @@ $(document).ready(function(){initNavTree('d7/d0a/namespacetrie__using__hashmap.h
</div>
<div class="header">
<div class="headertitle">
<div class="title">trie_using_hashmap Namespace Reference</div> </div>
<div class="headertitle"><div class="title">trie_using_hashmap Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Functions for <a href="https://en.wikipedia.org/wiki/Trie">Trie</a> data structure using hashmap implementation.
<p>Functions for <a href="https://en.wikipedia.org/wiki/Trie" target="_blank">Trie</a> data structure using hashmap implementation.
<a href="../../d7/d0a/namespacetrie__using__hashmap.html#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Functions for <a href="https://en.wikipedia.org/wiki/Trie">Trie</a> data structure using hashmap implementation. </p>
<div class="textblock"><p >Functions for <a href="https://en.wikipedia.org/wiki/Trie" target="_blank">Trie</a> data structure using hashmap implementation. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d7/d0a/namespacetrie__using__hashmap.html">trie_using_hashmap</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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,4 +0,0 @@
<map id="data_structures::SkipList" name="data_structures::SkipList">
<area shape="rect" id="node1" title=" " alt="" coords="5,109,173,136"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/memory/shared_ptr.html" title=" " alt="" coords="15,5,163,47"/>
</map>

View File

@@ -1 +0,0 @@
1611031fa3ca4f6a42cdd8d80cf73db1

View File

@@ -1,39 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
-->
<!-- Title: data_structures::SkipList Pages: 1 -->
<svg width="134pt" height="106pt"
viewBox="0.00 0.00 134.00 106.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 102)">
<title>data_structures::SkipList</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-102 130,-102 130,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title=" ">
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-19.5 126,-19.5 126,-0.5 0,-0.5"/>
<text text-anchor="middle" x="63" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">data_structures::SkipList</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="7.5,-67.5 7.5,-97.5 118.5,-97.5 118.5,-67.5 7.5,-67.5"/>
<text text-anchor="start" x="15.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::shared_ptr&lt; data</text>
<text text-anchor="middle" x="63" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">_structures::Node &gt;</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node1 -->
<g id="edge1" class="edge">
<title>Node2&#45;&gt;Node1</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M63,-57.09C63,-44.21 63,-29.2 63,-19.89"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="59.5,-57.23 63,-67.23 66.5,-57.23 59.5,-57.23"/>
<text text-anchor="middle" x="80" y="-41" font-family="Helvetica,sans-Serif" font-size="10.00"> header</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: graph/dijkstra.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d1e/graph_2dijkstra_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -94,8 +94,7 @@ $(document).ready(function(){initNavTree('d7/d1e/graph_2dijkstra_8cpp.html','../
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">dijkstra.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">dijkstra.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
@@ -115,40 +114,40 @@ Include dependency graph for dijkstra.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:df/dce/namespacegraph"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html">graph</a></td></tr>
<tr class="memitem:df/dce/namespacegraph"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html">graph</a></td></tr>
<tr class="memdesc:df/dce/namespacegraph"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../dc/d61/classgraph_1_1_graph.html">Graph</a> Algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a454891267187a5ec6c6e3f3ad5203ff1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html#a454891267187a5ec6c6e3f3ad5203ff1">graph::addEdge</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; int, int &gt;&gt;&gt; *adj, int u, int v, int w)</td></tr>
<tr class="memdesc:a454891267187a5ec6c6e3f3ad5203ff1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function that add edge between two nodes or vertices of graph. <a href="../../df/dce/namespacegraph.html#a454891267187a5ec6c6e3f3ad5203ff1">More...</a><br /></td></tr>
<tr class="separator:a454891267187a5ec6c6e3f3ad5203ff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a868530bfaed30e57290a76d5b4402d50"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html#a868530bfaed30e57290a76d5b4402d50">graph::dijkstra</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; int, int &gt;&gt;&gt; *adj, int s, int t)</td></tr>
<tr class="memdesc:a868530bfaed30e57290a76d5b4402d50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and returns the shortest distance of target from the source. <a href="../../df/dce/namespacegraph.html#a868530bfaed30e57290a76d5b4402d50">More...</a><br /></td></tr>
<tr class="separator:a868530bfaed30e57290a76d5b4402d50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e30e0dca68cb6e4f671440819b35b6a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html#a0e30e0dca68cb6e4f671440819b35b6a">graph::addEdge</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; int, int &gt; &gt; &gt; *adj, int u, int v, int w)</td></tr>
<tr class="memdesc:a0e30e0dca68cb6e4f671440819b35b6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function that add edge between two nodes or vertices of graph. <a href="../../df/dce/namespacegraph.html#a0e30e0dca68cb6e4f671440819b35b6a">More...</a><br /></td></tr>
<tr class="separator:a0e30e0dca68cb6e4f671440819b35b6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc68cbc8ba09eb1142265935c0d45b84"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html#adc68cbc8ba09eb1142265935c0d45b84">graph::dijkstra</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; int, int &gt; &gt; &gt; *adj, int s, int t)</td></tr>
<tr class="memdesc:adc68cbc8ba09eb1142265935c0d45b84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and returns the shortest distance of target from the source. <a href="../../df/dce/namespacegraph.html#adc68cbc8ba09eb1142265935c0d45b84">More...</a><br /></td></tr>
<tr class="separator:adc68cbc8ba09eb1142265935c0d45b84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88ec9ad42717780d6caaff9d3d6977f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d1e/graph_2dijkstra_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a> ()</td></tr>
<tr class="separator:a88ec9ad42717780d6caaff9d3d6977f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d1e/graph_2dijkstra_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a330a2b0a904f01802ada1f8f3b28e76c"><td class="memItemLeft" align="right" valign="top"><a id="a330a2b0a904f01802ada1f8f3b28e76c"></a>
<tr class="memitem:a330a2b0a904f01802ada1f8f3b28e76c"><td class="memItemLeft" align="right" valign="top"><a id="a330a2b0a904f01802ada1f8f3b28e76c" name="a330a2b0a904f01802ada1f8f3b28e76c"></a>
constexpr int64_t&#160;</td><td class="memItemRight" valign="bottom"><b>INF</b> = <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/numeric_limits.html">std::numeric_limits</a>&lt;int64_t&gt;::max()</td></tr>
<tr class="separator:a330a2b0a904f01802ada1f8f3b28e76c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>&lt;a href="https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm" </p>
<p>&gt;<a class="el" href="../../da/d9a/class_graph.html">Graph</a> Dijkstras Shortest Path Algorithm (Dijkstra's Shortest Path)</p>
<dl class="section author"><dt>Author</dt><dd><a href="http://github.com/ayaankhan98">Ayaan Khan</a></dd></dl>
<div class="textblock"><p >&lt;a href="https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm" </p>
<p >target="_blank" &gt;<a class="el" href="../../da/d9a/class_graph.html">Graph</a> Dijkstras Shortest Path Algorithm (Dijkstra's Shortest Path)</p>
<dl class="section author"><dt>Author</dt><dd><a href="http://github.com/ayaankhan98" target="_blank">Ayaan Khan</a></dd></dl>
<p>Dijkstra's Algorithm is used to find the shortest path from a source vertex to all other reachable vertex in the graph. The algorithm initially assumes all the nodes are unreachable from the given source vertex so we mark the distances of all vertices as INF (infinity) from source vertex (INF / infinity denotes unable to reach).</p>
<p>in similar fashion with BFS we assume the distance of source vertex as 0 and pushes the vertex in a priority queue with it's distance. we maintain the priority queue as a min heap so that we can get the minimum element at the top of heap</p>
<p>Basically what we do in this algorithm is that we try to minimize the distances of all the reachable vertices from the current vertex, look at the code below to understand in better way. </p>
<p >in similar fashion with BFS we assume the distance of source vertex as 0 and pushes the vertex in a priority queue with it's distance. we maintain the priority queue as a min heap so that we can get the minimum element at the top of heap</p>
<p >Basically what we do in this algorithm is that we try to minimize the distances of all the reachable vertices from the current vertex, look at the code below to understand in better way. </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -163,54 +162,54 @@ constexpr int64_t&#160;</td><td class="memItemRight" valign="bottom"><b>INF</b>
</tr>
</table>
</div><div class="memdoc">
<p>Main function </p>
<div class="fragment"><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// running predefined tests</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="../../d7/d1e/graph_2dijkstra_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a>();</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">int</span> vertices = int(), edges = int();</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the number of vertices : &quot;</span>;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; vertices;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the number of edges : &quot;</span>;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; edges;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; </div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;int, int&gt;</a>&gt;&gt; adj(</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; vertices, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;int, int&gt;</a>&gt;());</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">int</span> u = int(), v = int(), w = int();</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">while</span> (edges--) {</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; u &gt;&gt; v &gt;&gt; w;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj, u, v, w);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordtype">int</span> s = int(), t = int();</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; s &gt;&gt; t;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordtype">int</span> dist = <a class="code" href="../../df/dce/namespacegraph.html#a868530bfaed30e57290a76d5b4402d50">graph::dijkstra</a>(&amp;adj, s - 1, t - 1);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">if</span> (dist == -1) {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Target not reachable from source&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Shortest Path Distance : &quot;</span> &lt;&lt; dist &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;}</div>
<p >Main function </p>
<div class="fragment"><div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> {</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="comment">// running predefined tests</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_function" href="../../d7/d1e/graph_2dijkstra_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a>();</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordtype">int</span> vertices = int(), edges = int();</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the number of vertices : &quot;</span>;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; vertices;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the number of edges : &quot;</span>;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; edges;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;int, int&gt;</a>&gt;&gt; adj(</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> vertices, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;int, int&gt;</a>&gt;());</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordtype">int</span> u = int(), v = int(), w = int();</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">while</span> (edges--) {</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; u &gt;&gt; v &gt;&gt; w;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj, u, v, w);</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> }</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordtype">int</span> s = int(), t = int();</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; s &gt;&gt; t;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordtype">int</span> dist = <a class="code hl_function" href="../../df/dce/namespacegraph.html#adc68cbc8ba09eb1142265935c0d45b84">graph::dijkstra</a>(&amp;adj, s - 1, t - 1);</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">if</span> (dist == -1) {</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Target not reachable from source&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Shortest Path Distance : &quot;</span> &lt;&lt; dist &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> }</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span>}</div>
<div class="ttc" id="abasic_istream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a></div></div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
<div class="ttc" id="agraph_2dijkstra_8cpp_html_a88ec9ad42717780d6caaff9d3d6977f9"><div class="ttname"><a href="../../d7/d1e/graph_2dijkstra_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a></div><div class="ttdeci">void tests()</div><div class="ttdef"><b>Definition:</b> dijkstra.cpp:113</div></div>
<div class="ttc" id="anamespacegraph_html_a372ff051a7bc6c91d34a7b58edf8dfce"><div class="ttname"><a href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a></div><div class="ttdeci">void addEdge(std::vector&lt; std::vector&lt; int &gt;&gt; *adj, int u, int v)</div><div class="ttdoc">Function that add edge between two nodes or vertices of graph.</div><div class="ttdef"><b>Definition:</b> connected_components.cpp:46</div></div>
<div class="ttc" id="anamespacegraph_html_a868530bfaed30e57290a76d5b4402d50"><div class="ttname"><a href="../../df/dce/namespacegraph.html#a868530bfaed30e57290a76d5b4402d50">graph::dijkstra</a></div><div class="ttdeci">int dijkstra(std::vector&lt; std::vector&lt; std::pair&lt; int, int &gt;&gt;&gt; *adj, int s, int t)</div><div class="ttdoc">Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return...</div><div class="ttdef"><b>Definition:</b> dijkstra.cpp:66</div></div>
<div class="ttc" id="anamespacegraph_html_a9125ceb66bfbec3093bba64c2c1e99e2"><div class="ttname"><a href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a></div><div class="ttdeci">void addEdge(std::vector&lt; std::vector&lt; int &gt; &gt; *adj, int u, int v)</div><div class="ttdoc">Function that add edge between two nodes or vertices of graph.</div><div class="ttdef"><b>Definition:</b> connected_components.cpp:46</div></div>
<div class="ttc" id="anamespacegraph_html_adc68cbc8ba09eb1142265935c0d45b84"><div class="ttname"><a href="../../df/dce/namespacegraph.html#adc68cbc8ba09eb1142265935c0d45b84">graph::dijkstra</a></div><div class="ttdeci">int dijkstra(std::vector&lt; std::vector&lt; std::pair&lt; int, int &gt; &gt; &gt; *adj, int s, int t)</div><div class="ttdoc">Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return...</div><div class="ttdef"><b>Definition:</b> dijkstra.cpp:66</div></div>
<div class="ttc" id="apair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a></div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d1e/graph_2dijkstra_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="488" height="163"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d1e/graph_2dijkstra_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="326" height="163"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a88ec9ad42717780d6caaff9d3d6977f9"></a>
<a id="a88ec9ad42717780d6caaff9d3d6977f9" name="a88ec9ad42717780d6caaff9d3d6977f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88ec9ad42717780d6caaff9d3d6977f9">&#9670;&nbsp;</a></span>tests()</h2>
<div class="memitem">
@@ -224,48 +223,48 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Function to test the Algorithm </p>
<div class="fragment"><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiatinig Predefined Tests...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiating Test 1...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;int, int&gt;</a>&gt;&gt; adj1(</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; 4, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;int, int&gt;</a>&gt;());</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj1, 1, 2, 1);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj1, 4, 1, 2);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj1, 2, 3, 2);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj1, 1, 3, 5);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">int</span> s = 1, t = 3;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; assert(<a class="code" href="../../df/dce/namespacegraph.html#a868530bfaed30e57290a76d5b4402d50">graph::dijkstra</a>(&amp;adj1, s - 1, t - 1) == 3);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1 Passed...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; s = 4, t = 3;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiating Test 2...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; assert(<a class="code" href="../../df/dce/namespacegraph.html#a868530bfaed30e57290a76d5b4402d50">graph::dijkstra</a>(&amp;adj1, s - 1, t - 1) == 5);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2 Passed...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;int, int&gt;</a>&gt;&gt; adj2(</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; 5, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;int, int&gt;</a>&gt;());</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj2, 1, 2, 4);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj2, 1, 3, 2);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj2, 2, 3, 2);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj2, 3, 2, 1);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj2, 2, 4, 2);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj2, 3, 5, 4);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj2, 5, 4, 1);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj2, 2, 5, 3);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce">graph::addEdge</a>(&amp;adj2, 3, 4, 4);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; s = 1, t = 5;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiating Test 3...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; assert(<a class="code" href="../../df/dce/namespacegraph.html#a868530bfaed30e57290a76d5b4402d50">graph::dijkstra</a>(&amp;adj2, s - 1, t - 1) == 6);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3 Passed...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All Test Passed...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div>
<p >Function to test the Algorithm </p>
<div class="fragment"><div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> {</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiatinig Predefined Tests...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiating Test 1...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;int, int&gt;</a>&gt;&gt; adj1(</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> 4, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;int, int&gt;</a>&gt;());</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj1, 1, 2, 1);</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj1, 4, 1, 2);</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj1, 2, 3, 2);</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj1, 1, 3, 5);</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordtype">int</span> s = 1, t = 3;</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> assert(<a class="code hl_function" href="../../df/dce/namespacegraph.html#adc68cbc8ba09eb1142265935c0d45b84">graph::dijkstra</a>(&amp;adj1, s - 1, t - 1) == 3);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1 Passed...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> s = 4, t = 3;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiating Test 2...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> assert(<a class="code hl_function" href="../../df/dce/namespacegraph.html#adc68cbc8ba09eb1142265935c0d45b84">graph::dijkstra</a>(&amp;adj1, s - 1, t - 1) == 5);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2 Passed...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::pair&lt;int, int&gt;</a>&gt;&gt; adj2(</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> 5, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;int, int&gt;</a>&gt;());</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj2, 1, 2, 4);</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj2, 1, 3, 2);</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj2, 2, 3, 2);</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj2, 3, 2, 1);</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj2, 2, 4, 2);</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj2, 3, 5, 4);</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj2, 5, 4, 1);</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj2, 2, 5, 3);</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <a class="code hl_function" href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2">graph::addEdge</a>(&amp;adj2, 3, 4, 4);</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> s = 1, t = 5;</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Initiating Test 3...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> assert(<a class="code hl_function" href="../../df/dce/namespacegraph.html#adc68cbc8ba09eb1142265935c0d45b84">graph::dijkstra</a>(&amp;adj2, s - 1, t - 1) == 6);</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3 Passed...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All Test Passed...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d1e/graph_2dijkstra_8cpp_a88ec9ad42717780d6caaff9d3d6977f9_cgraph.svg" width="390" height="139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d1e/graph_2dijkstra_8cpp_a88ec9ad42717780d6caaff9d3d6977f9_cgraph.svg" width="227" height="139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
@@ -277,7 +276,7 @@ Here is the call graph for this function:</div>
<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"><a class="el" href="../../d7/d1e/graph_2dijkstra_8cpp.html">dijkstra.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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,8 +1,7 @@
var graph_2dijkstra_8cpp =
[
[ "addEdge", "d7/d1e/graph_2dijkstra_8cpp.html#a454891267187a5ec6c6e3f3ad5203ff1", null ],
[ "dijkstra", "d7/d1e/graph_2dijkstra_8cpp.html#a868530bfaed30e57290a76d5b4402d50", null ],
[ "addEdge", "d7/d1e/graph_2dijkstra_8cpp.html#a0e30e0dca68cb6e4f671440819b35b6a", null ],
[ "dijkstra", "d7/d1e/graph_2dijkstra_8cpp.html#adc68cbc8ba09eb1142265935c0d45b84", null ],
[ "main", "d7/d1e/graph_2dijkstra_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
[ "tests", "d7/d1e/graph_2dijkstra_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9", null ],
[ "INF", "d7/d1e/graph_2dijkstra_8cpp.html#a330a2b0a904f01802ada1f8f3b28e76c", null ]
[ "tests", "d7/d1e/graph_2dijkstra_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9", null ]
];

View File

@@ -1,7 +1,6 @@
<map id="tests" name="tests">
<area shape="rect" id="node1" title=" " alt="" coords="5,56,56,83"/>
<area shape="rect" id="node2" href="$df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce" title="Function that add edge between two nodes or vertices of graph." alt="" coords="104,5,221,32"/>
<area shape="rect" id="node3" href="$df/dce/namespacegraph.html#a868530bfaed30e57290a76d5b4402d50" title="Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return..." alt="" coords="110,56,215,83"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="127,107,199,133"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="269,56,384,83"/>
<area shape="rect" id="node2" href="$df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2" title="Function that add edge between two nodes or vertices of graph." alt="" coords="104,5,221,32"/>
<area shape="rect" id="node3" href="$df/dce/namespacegraph.html#adc68cbc8ba09eb1142265935c0d45b84" title="Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return..." alt="" coords="110,56,215,83"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="127,107,199,133"/>
</map>

View File

@@ -1 +1 @@
a9a5114fdc641ce208647b7c3c87be7f
5c3c0733e7a0a0e5e11cab9ce17c7047

View File

@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: tests Pages: 1 -->
<svg width="292pt" height="104pt"
viewBox="0.00 0.00 292.00 104.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="170pt" height="104pt"
viewBox="0.00 0.00 170.00 104.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 100)">
<title>tests</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-100 288,-100 288,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-100 166,-100 166,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -21,7 +21,7 @@
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce" target="_top" xlink:title="Function that add edge between two nodes or vertices of graph.">
<g id="a_node2"><a xlink:href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2" target="_top" xlink:title="Function that add edge between two nodes or vertices of graph.">
<polygon fill="white" stroke="black" points="74,-76.5 74,-95.5 162,-95.5 162,-76.5 74,-76.5"/>
<text text-anchor="middle" x="118" y="-83.5" font-family="Helvetica,sans-Serif" font-size="10.00">graph::addEdge</text>
</a>
@@ -36,7 +36,7 @@
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../df/dce/namespacegraph.html#a868530bfaed30e57290a76d5b4402d50" target="_top" xlink:title="Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return...">
<g id="a_node3"><a xlink:href="../../df/dce/namespacegraph.html#adc68cbc8ba09eb1142265935c0d45b84" target="_top" xlink:title="Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return...">
<polygon fill="white" stroke="black" points="78.5,-38.5 78.5,-57.5 157.5,-57.5 157.5,-38.5 78.5,-38.5"/>
<text text-anchor="middle" x="118" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">graph::dijkstra</text>
</a>
@@ -48,35 +48,20 @@
<path fill="none" stroke="midnightblue" d="M38.24,-48C46.81,-48 57.48,-48 68.16,-48"/>
<polygon fill="midnightblue" stroke="midnightblue" points="68.35,-51.5 78.35,-48 68.35,-44.5 68.35,-51.5"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="91,-0.5 91,-19.5 145,-19.5 145,-0.5 91,-0.5"/>
<text text-anchor="middle" x="118" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node5</title>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M38.24,-40.85C50.85,-35.91 68,-29.2 83.07,-23.29"/>
<polygon fill="midnightblue" stroke="midnightblue" points="84.57,-26.46 92.61,-19.56 82.02,-19.94 84.57,-26.46"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="198,-38.5 198,-57.5 284,-57.5 284,-38.5 198,-38.5"/>
<text text-anchor="middle" x="241" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M157.62,-48C167.27,-48 177.77,-48 187.95,-48"/>
<polygon fill="midnightblue" stroke="midnightblue" points="187.98,-51.5 197.98,-48 187.98,-44.5 187.98,-51.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,8 +1,7 @@
<map id="main" name="main">
<area shape="rect" id="node1" title=" " alt="" coords="5,68,56,95"/>
<area shape="rect" id="node2" href="$df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce" title="Function that add edge between two nodes or vertices of graph." alt="" coords="203,5,320,32"/>
<area shape="rect" id="node3" href="$df/dce/namespacegraph.html#a868530bfaed30e57290a76d5b4402d50" title="Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return..." alt="" coords="209,68,314,95"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="225,131,297,157"/>
<area shape="rect" id="node6" href="$d7/d1e/graph_2dijkstra_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9" title=" " alt="" coords="104,43,155,69"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="368,68,483,95"/>
<area shape="rect" id="node2" href="$df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2" title="Function that add edge between two nodes or vertices of graph." alt="" coords="203,5,320,32"/>
<area shape="rect" id="node3" href="$df/dce/namespacegraph.html#adc68cbc8ba09eb1142265935c0d45b84" title="Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return..." alt="" coords="209,68,314,95"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="225,131,297,157"/>
<area shape="rect" id="node5" href="$d7/d1e/graph_2dijkstra_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9" title=" " alt="" coords="104,43,155,69"/>
</map>

View File

@@ -1 +1 @@
908c206fcb1ad75479951361066af7e2
fbcbf4976463662f2085c88eea0a6c06

View File

@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="366pt" height="122pt"
viewBox="0.00 0.00 366.00 122.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="244pt" height="122pt"
viewBox="0.00 0.00 244.00 122.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 118)">
<title>main</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-118 362,-118 362,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-118 240,-118 240,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -21,7 +21,7 @@
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../df/dce/namespacegraph.html#a372ff051a7bc6c91d34a7b58edf8dfce" target="_top" xlink:title="Function that add edge between two nodes or vertices of graph.">
<g id="a_node2"><a xlink:href="../../df/dce/namespacegraph.html#a9125ceb66bfbec3093bba64c2c1e99e2" target="_top" xlink:title="Function that add edge between two nodes or vertices of graph.">
<polygon fill="white" stroke="black" points="148,-94.5 148,-113.5 236,-113.5 236,-94.5 148,-94.5"/>
<text text-anchor="middle" x="192" y="-101.5" font-family="Helvetica,sans-Serif" font-size="10.00">graph::addEdge</text>
</a>
@@ -36,7 +36,7 @@
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../df/dce/namespacegraph.html#a868530bfaed30e57290a76d5b4402d50" target="_top" xlink:title="Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return...">
<g id="a_node3"><a xlink:href="../../df/dce/namespacegraph.html#adc68cbc8ba09eb1142265935c0d45b84" target="_top" xlink:title="Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return...">
<polygon fill="white" stroke="black" points="152.5,-47.5 152.5,-66.5 231.5,-66.5 231.5,-47.5 152.5,-47.5"/>
<text text-anchor="middle" x="192" y="-54.5" font-family="Helvetica,sans-Serif" font-size="10.00">graph::dijkstra</text>
</a>
@@ -48,66 +48,51 @@
<path fill="none" stroke="midnightblue" d="M38.3,-57C62.82,-57 107.25,-57 141.89,-57"/>
<polygon fill="midnightblue" stroke="midnightblue" points="142.29,-60.5 152.29,-57 142.29,-53.5 142.29,-60.5"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="165,-0.5 165,-19.5 219,-19.5 219,-0.5 165,-0.5"/>
<text text-anchor="middle" x="192" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M38.3,-51.97C65.98,-44.36 119.05,-29.78 154.75,-19.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="156.05,-23.24 164.77,-17.21 154.2,-16.49 156.05,-23.24"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="165,-0.5 165,-19.5 219,-19.5 219,-0.5 165,-0.5"/>
<text text-anchor="middle" x="192" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
<g id="a_node5"><a xlink:href="../../d7/d1e/graph_2dijkstra_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-66.5 74,-85.5 112,-85.5 112,-66.5 74,-66.5"/>
<text text-anchor="middle" x="93" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">tests</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M38.3,-51.97C65.98,-44.36 119.05,-29.78 154.75,-19.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="156.05,-23.24 164.77,-17.21 154.2,-16.49 156.05,-23.24"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d7/d1e/graph_2dijkstra_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-66.5 74,-85.5 112,-85.5 112,-66.5 74,-66.5"/>
<text text-anchor="middle" x="93" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">tests</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node1&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M38.17,-61.79C45.95,-63.85 55.23,-66.3 63.87,-68.58"/>
<polygon fill="midnightblue" stroke="midnightblue" points="63.02,-71.97 73.59,-71.14 64.81,-65.21 63.02,-71.97"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="272,-47.5 272,-66.5 358,-66.5 358,-47.5 272,-47.5"/>
<text text-anchor="middle" x="315" y="-54.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M231.62,-57C241.27,-57 251.77,-57 261.95,-57"/>
<polygon fill="midnightblue" stroke="midnightblue" points="261.98,-60.5 271.98,-57 261.98,-53.5 261.98,-60.5"/>
</g>
<!-- Node6&#45;&gt;Node2 -->
<g id="edge6" class="edge">
<title>Node6&#45;&gt;Node2</title>
<!-- Node5&#45;&gt;Node2 -->
<g id="edge5" class="edge">
<title>Node5&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M112.24,-81.27C122.38,-84.19 135.44,-87.96 148.01,-91.59"/>
<polygon fill="midnightblue" stroke="midnightblue" points="147.34,-95.04 157.92,-94.45 149.28,-88.31 147.34,-95.04"/>
</g>
<!-- Node6&#45;&gt;Node3 -->
<g id="edge7" class="edge">
<title>Node6&#45;&gt;Node3</title>
<!-- Node5&#45;&gt;Node3 -->
<g id="edge6" class="edge">
<title>Node5&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M112.24,-72.43C120.9,-70.73 131.7,-68.62 142.49,-66.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="143.21,-69.93 152.35,-64.57 141.86,-63.06 143.21,-69.93"/>
</g>
<!-- Node6&#45;&gt;Node5 -->
<g id="edge8" class="edge">
<title>Node6&#45;&gt;Node5</title>
<!-- Node5&#45;&gt;Node4 -->
<g id="edge7" class="edge">
<title>Node5&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M107.22,-66.5C118.1,-58.73 133.95,-47.51 148,-38 154.15,-33.84 160.85,-29.42 167.09,-25.35"/>
<polygon fill="midnightblue" stroke="midnightblue" points="169.3,-28.09 175.79,-19.72 165.49,-22.22 169.3,-28.09"/>
</g>

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: math/realtime_stats.cpp Pages: 1 -->
<svg width="193pt" height="84pt"

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Member List</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d2/dc4/classstack__linked_list.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,25 +90,24 @@ $(document).ready(function(){initNavTree('d2/dc4/classstack__linked_list.html','
</div>
<div class="header">
<div class="headertitle">
<div class="title">stack_linkedList Member List</div> </div>
<div class="headertitle"><div class="title">stack_linkedList Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>dequeue</b>() (defined in <a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a>)</td><td class="entry"><a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>display</b>() (defined in <a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a>)</td><td class="entry"><a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>display</b>() (defined in <a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a>)</td><td class="entry"><a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>enqueue</b>(int) (defined in <a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a>)</td><td class="entry"><a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>front</b> (defined in <a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a>)</td><td class="entry"><a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>front</b> (defined in <a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a>)</td><td class="entry"><a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>rear</b> (defined in <a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a>)</td><td class="entry"><a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>stack_linkedList</b>() (defined in <a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a>)</td><td class="entry"><a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>stack_linkedList</b>() (defined in <a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a>)</td><td class="entry"><a class="el" href="../../d2/dc4/classstack__linked_list.html">stack_linkedList</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: backtracking/nqueen_print_all_solutions.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d24/nqueen__print__all__solutions_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('d7/d24/nqueen__print__all__solutions_8
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">nqueen_print_all_solutions.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">nqueen_print_all_solutions.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p><a href="https://en.wikipedia.org/wiki/Eight_queens_puzzle">Eight Queens</a> puzzle, printing all solutions
<p><a href="https://en.wikipedia.org/wiki/Eight_queens_puzzle" target="_blank">Eight Queens</a> puzzle, printing all solutions
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;array&gt;</code><br />
@@ -109,16 +108,16 @@ Include dependency graph for nqueen_print_all_solutions.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:db/dc0/namespacebacktracking"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/dc0/namespacebacktracking.html">backtracking</a></td></tr>
<tr class="memitem:db/dc0/namespacebacktracking"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/dc0/namespacebacktracking.html">backtracking</a></td></tr>
<tr class="memdesc:db/dc0/namespacebacktracking"><td class="mdescLeft">&#160;</td><td class="mdescRight">Backtracking algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:df/d44/namespacen__queens__all__solutions"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d44/namespacen__queens__all__solutions.html">n_queens_all_solutions</a></td></tr>
<tr class="memdesc:df/d44/namespacen__queens__all__solutions"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://en.wikipedia.org/wiki/Eight_queens_puzzle">Eight Queens</a> puzzle with all solutions. <br /></td></tr>
<tr class="memitem:df/d44/namespacen__queens__all__solutions"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d44/namespacen__queens__all__solutions.html">n_queens_all_solutions</a></td></tr>
<tr class="memdesc:df/d44/namespacen__queens__all__solutions"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://en.wikipedia.org/wiki/Eight_queens_puzzle" target="_blank">Eight Queens</a> puzzle with all solutions. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aebd5e11fab6dab282efccfb61beb0bd9"><td class="memTemplParams" colspan="2">template&lt;size_t n&gt; </td></tr>
<tr class="memitem:aebd5e11fab6dab282efccfb61beb0bd9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d7/d24/nqueen__print__all__solutions_8cpp.html#aebd5e11fab6dab282efccfb61beb0bd9">backtracking::n_queens_all_solutions::PrintSol</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int, n &gt;, n &gt; &amp;board)</td></tr>
@@ -133,12 +132,12 @@ Functions</h2></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a href="https://en.wikipedia.org/wiki/Eight_queens_puzzle">Eight Queens</a> puzzle, printing all solutions </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Himani2000">Himani Negi</a> </dd>
<div class="textblock"><p ><a href="https://en.wikipedia.org/wiki/Eight_queens_puzzle" target="_blank">Eight Queens</a> puzzle, printing all solutions </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Himani2000" target="_blank">Himani Negi</a> </dd>
<dd>
<a href="https://github.com/Panquesito7">David Leal</a> </dd></dl>
<a href="https://github.com/Panquesito7" target="_blank">David Leal</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="aea343d8a72a39c9a4c0fbcbc362f2648"></a>
<a id="aea343d8a72a39c9a4c0fbcbc362f2648" name="aea343d8a72a39c9a4c0fbcbc362f2648"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea343d8a72a39c9a4c0fbcbc362f2648">&#9670;&nbsp;</a></span>CanIMove()</h2>
<div class="memitem">
@@ -171,7 +170,7 @@ template&lt;size_t n&gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>Check if a queen can be placed on matrix </p><dl class="tparams"><dt>Template Parameters</dt><dd>
<p >Check if a queen can be placed on matrix </p><dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">n</td><td>number of matrix size </td></tr>
</table>
@@ -188,34 +187,34 @@ template&lt;size_t n&gt; </div>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if queen can be placed on matrix </dd>
<dd>
<code>false</code> if queen can't be placed on matrix </dd></dl>
<p>check in the row</p>
<p>check the first diagonal</p>
<p>check the second diagonal</p>
<div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {<span class="comment"></span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> /// check in the row</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"></span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; col; i++) {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span> (board[row][i] == 1) {</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> /// check the first diagonal</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"></span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = row, j = col; i &gt;= 0 &amp;&amp; j &gt;= 0; i--, j--) {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span> (board[i][j] == 1) {</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> /// check the second diagonal</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"></span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = row, j = col; i &lt;= n - 1 &amp;&amp; j &gt;= 0; i++, j--) {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span> (board[i][j] == 1) {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div>
<p >check in the row</p>
<p >check the first diagonal</p>
<p >check the second diagonal</p>
<div class="fragment"><div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> {<span class="comment"></span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment"> /// check in the row</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment"></span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; col; i++) {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">if</span> (board[row][i] == 1) {</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> }<span class="comment"></span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment"> /// check the first diagonal</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment"></span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = row, j = col; i &gt;= 0 &amp;&amp; j &gt;= 0; i--, j--) {</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">if</span> (board[i][j] == 1) {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> }</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> }<span class="comment"></span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"> /// check the second diagonal</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"></span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = row, j = col; i &lt;= n - 1 &amp;&amp; j &gt;= 0; i++, j--) {</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">if</span> (board[i][j] == 1) {</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -230,19 +229,19 @@ template&lt;size_t n&gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>Main function </p>
<div class="fragment"><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = 4;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::array&lt;int, n&gt;</a>, n&gt; board{0};</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="../../d7/d24/nqueen__print__all__solutions_8cpp.html#acc809c055f335011de0d9030034c7108">backtracking::n_queens_all_solutions::NQueenSol</a>(board, 0);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div>
<p >Main function </p>
<div class="fragment"><div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> {</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">const</span> <span class="keywordtype">int</span> n = 4;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::array&lt;int, n&gt;</a>, n&gt; board{0};</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_function" href="../../d7/d24/nqueen__print__all__solutions_8cpp.html#acc809c055f335011de0d9030034c7108">backtracking::n_queens_all_solutions::NQueenSol</a>(board, 0);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span>}</div>
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></div></div>
<div class="ttc" id="anqueen__print__all__solutions_8cpp_html_acc809c055f335011de0d9030034c7108"><div class="ttname"><a href="../../d7/d24/nqueen__print__all__solutions_8cpp.html#acc809c055f335011de0d9030034c7108">backtracking::n_queens_all_solutions::NQueenSol</a></div><div class="ttdeci">void NQueenSol(std::array&lt; std::array&lt; int, n &gt;, n &gt; board, int col)</div><div class="ttdef"><b>Definition:</b> nqueen_print_all_solutions.cpp:79</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="acc809c055f335011de0d9030034c7108"></a>
<a id="acc809c055f335011de0d9030034c7108" name="acc809c055f335011de0d9030034c7108"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc809c055f335011de0d9030034c7108">&#9670;&nbsp;</a></span>NQueenSol()</h2>
<div class="memitem">
@@ -269,7 +268,7 @@ template&lt;size_t n&gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>Solve n queens problem </p><dl class="tparams"><dt>Template Parameters</dt><dd>
<p >Solve n queens problem </p><dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">n</td><td>number of matrix size </td></tr>
</table>
@@ -282,26 +281,26 @@ template&lt;size_t n&gt; </div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span> (col &gt;= n) {</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="../../da/dac/n__queens__all__solution__optimised_8cpp.html#a04090463be4942a69ea91fe7386da905">PrintSol</a>(board);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; i++) {</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../da/dac/n__queens__all__solution__optimised_8cpp.html#a9e48455584a4faa33e83dd1891efd9b9">CanIMove</a>(board, i, col)) {</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; board[i][col] = 1;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="../../da/dac/n__queens__all__solution__optimised_8cpp.html#a23c0547e4fd1708e6fb643b08327a60f">NQueenSol</a>(board, col + 1);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; board[i][col] = 0;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">if</span> (col &gt;= n) {</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_function" href="../../da/dac/n__queens__all__solution__optimised_8cpp.html#a04090463be4942a69ea91fe7386da905">PrintSol</a>(board);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; i++) {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="../../da/dac/n__queens__all__solution__optimised_8cpp.html#a9e48455584a4faa33e83dd1891efd9b9">CanIMove</a>(board, i, col)) {</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> board[i][col] = 1;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <a class="code hl_function" href="../../da/dac/n__queens__all__solution__optimised_8cpp.html#a23c0547e4fd1708e6fb643b08327a60f">NQueenSol</a>(board, col + 1);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> board[i][col] = 0;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> }</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> }</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span>}</div>
<div class="ttc" id="an__queens__all__solution__optimised_8cpp_html_a04090463be4942a69ea91fe7386da905"><div class="ttname"><a href="../../da/dac/n__queens__all__solution__optimised_8cpp.html#a04090463be4942a69ea91fe7386da905">backtracking::n_queens_optimized::PrintSol</a></div><div class="ttdeci">void PrintSol(const std::array&lt; std::array&lt; int, n &gt;, n &gt; &amp;board)</div><div class="ttdef"><b>Definition:</b> n_queens_all_solution_optimised.cpp:30</div></div>
<div class="ttc" id="an__queens__all__solution__optimised_8cpp_html_a23c0547e4fd1708e6fb643b08327a60f"><div class="ttname"><a href="../../da/dac/n__queens__all__solution__optimised_8cpp.html#a23c0547e4fd1708e6fb643b08327a60f">backtracking::n_queens_optimized::NQueenSol</a></div><div class="ttdeci">void NQueenSol(std::array&lt; std::array&lt; int, n &gt;, n &gt; board, int col)</div><div class="ttdef"><b>Definition:</b> n_queens_all_solution_optimised.cpp:89</div></div>
<div class="ttc" id="an__queens__all__solution__optimised_8cpp_html_a9e48455584a4faa33e83dd1891efd9b9"><div class="ttname"><a href="../../da/dac/n__queens__all__solution__optimised_8cpp.html#a9e48455584a4faa33e83dd1891efd9b9">backtracking::n_queens_optimized::CanIMove</a></div><div class="ttdeci">bool CanIMove(const std::array&lt; std::array&lt; int, n &gt;, n &gt; &amp;board, int row, int col)</div><div class="ttdef"><b>Definition:</b> n_queens_all_solution_optimised.cpp:59</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aebd5e11fab6dab282efccfb61beb0bd9"></a>
<a id="aebd5e11fab6dab282efccfb61beb0bd9" name="aebd5e11fab6dab282efccfb61beb0bd9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebd5e11fab6dab282efccfb61beb0bd9">&#9670;&nbsp;</a></span>PrintSol()</h2>
<div class="memitem">
@@ -318,7 +317,7 @@ template&lt;size_t n&gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>Utility function to print matrix </p><dl class="tparams"><dt>Template Parameters</dt><dd>
<p >Utility function to print matrix </p><dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">n</td><td>number of matrix size </td></tr>
</table>
@@ -330,15 +329,15 @@ template&lt;size_t n&gt; </div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; {</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; i++) {</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; n; j++) {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; board[i][j] &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; }</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; }</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; i++) {</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; n; j++) {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; board[i][j] &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> }</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> }</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span>}</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -356,7 +355,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_c11585dfcef32a26e29098facab6c144.html">backtracking</a></li><li class="navelem"><a class="el" href="../../d7/d24/nqueen__print__all__solutions_8cpp.html">nqueen_print_all_solutions.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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: backtracking::n_queens_all_solutions::PrintSol Pages: 1 -->
<svg width="220pt" height="39pt"

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: data_structures/avltree.cpp Pages: 1 -->
<svg width="202pt" height="84pt"

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: others/matrix_exponentiation.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d35/matrix__exponentiation_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -94,8 +94,7 @@ $(document).ready(function(){initNavTree('d7/d35/matrix__exponentiation_8cpp.htm
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">matrix_exponentiation.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">matrix_exponentiation.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
@@ -110,7 +109,7 @@ Include dependency graph for matrix_exponentiation.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ae1d1ec9482079231e898236e2b23c9ba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a>&#160;&#160;&#160;int64_t</td></tr>
<tr class="separator:ae1d1ec9482079231e898236e2b23c9ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -118,34 +117,34 @@ Macros</h2></td></tr>
<tr class="separator:a600eaf353befc174637855795f12d258"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a276c5a0e984cf60015b27252fe04fe6b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a276c5a0e984cf60015b27252fe04fe6b">pb</a>&#160;&#160;&#160;push_back</td></tr>
<tr class="separator:a276c5a0e984cf60015b27252fe04fe6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca7d5718ab8c38506adb3bef2469b319"><td class="memItemLeft" align="right" valign="top"><a id="aca7d5718ab8c38506adb3bef2469b319"></a>
<tr class="memitem:aca7d5718ab8c38506adb3bef2469b319"><td class="memItemLeft" align="right" valign="top"><a id="aca7d5718ab8c38506adb3bef2469b319" name="aca7d5718ab8c38506adb3bef2469b319"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>MOD</b>&#160;&#160;&#160;1000000007</td></tr>
<tr class="separator:aca7d5718ab8c38506adb3bef2469b319"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ac62a499b83c7895dd0aa69da1b64c904"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ac62a499b83c7895dd0aa69da1b64c904">multiply</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt;&gt; &amp;A, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt;&gt; &amp;B)</td></tr>
<tr class="separator:ac62a499b83c7895dd0aa69da1b64c904"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5769b745458157ef2679949155684f3b"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a5769b745458157ef2679949155684f3b">power</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt;&gt; &amp;A, <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> p)</td></tr>
<tr class="separator:a5769b745458157ef2679949155684f3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a357cfbebfdc47a237a2862fe146af252"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a357cfbebfdc47a237a2862fe146af252">multiply</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt; &gt; &amp;A, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt; &gt; &amp;B)</td></tr>
<tr class="separator:a357cfbebfdc47a237a2862fe146af252"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a702a9fc90e79b05b863cc4efa26ae2ec"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a702a9fc90e79b05b863cc4efa26ae2ec">power</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt; &gt; &amp;A, <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> p)</td></tr>
<tr class="separator:a702a9fc90e79b05b863cc4efa26ae2ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8389ed58fd0ec66df248014775ad1fa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> (<a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> n)</td></tr>
<tr class="separator:ad8389ed58fd0ec66df248014775ad1fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a9977ad12548c4a49dee9dc3f0685aa54"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a></td></tr>
<tr class="separator:a9977ad12548c4a49dee9dc3f0685aa54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35b7c98af53ad2ec18658679ad7d43de"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a35b7c98af53ad2ec18658679ad7d43de">fib_b</a></td></tr>
<tr class="separator:a35b7c98af53ad2ec18658679ad7d43de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cbd1162483ef7eccd5b947b2e01b1ab"><td class="memItemLeft" align="right" valign="top"><a id="a0cbd1162483ef7eccd5b947b2e01b1ab"></a>
<tr class="memitem:a0cbd1162483ef7eccd5b947b2e01b1ab"><td class="memItemLeft" align="right" valign="top"><a id="a0cbd1162483ef7eccd5b947b2e01b1ab" name="a0cbd1162483ef7eccd5b947b2e01b1ab"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>fib_c</b></td></tr>
<tr class="separator:a0cbd1162483ef7eccd5b947b2e01b1ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Matrix Exponentiation. </p>
<p>The problem can be solved with DP but constraints are high. <br />
<div class="textblock"><p >Matrix Exponentiation. </p>
<p >The problem can be solved with DP but constraints are high. <br />
\(a_i = b_i\) (for \(i &lt;= k\)) <br />
\(a_i = c_1 a_{i-1} + c_2 a_{i-2} + ... + c_k a_{i-k}\) (for \(i &gt; k\)) <br />
Taking the example of Fibonacci series, \(k=2\) <br />
@@ -153,15 +152,15 @@ Taking the example of Fibonacci series, \(k=2\) <br />
\(c_1 = 1,\; c_2=1\) <br />
\(a = \begin{bmatrix}0&amp; 1&amp; 1&amp; 2&amp; \ldots\end{bmatrix}\) <br />
This way you can find the \(10^{18}\) fibonacci numberMOD. I have given a general way to use it. The program takes the input of B and C matrix.</p>
<p>Steps for Matrix Expo</p><ol type="1">
<p >Steps for Matrix Expo</p><ol type="1">
<li>Create vector F1 : which is the copy of B.</li>
<li>Create transpose matrix (Learn more about it on the internet)</li>
<li>Perform \(T^{n-1}\) [transpose matrix to the power n-1]</li>
<li>Multiply with F to get the last matrix of size (1 \(\times\)k).</li>
</ol>
<p>The first element of this matrix is the required result. </p>
<p >The first element of this matrix is the required result. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a600eaf353befc174637855795f12d258"></a>
<a id="a600eaf353befc174637855795f12d258" name="a600eaf353befc174637855795f12d258"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a600eaf353befc174637855795f12d258">&#9670;&nbsp;</a></span>endl</h2>
<div class="memitem">
@@ -172,11 +171,11 @@ This way you can find the \(10^{18}\) fibonacci numberMOD. I have given a genera
</tr>
</table>
</div><div class="memdoc">
<p>shorthand definition for <code><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></code> </p>
<p >shorthand definition for <code><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></code> </p>
</div>
</div>
<a id="ae1d1ec9482079231e898236e2b23c9ba"></a>
<a id="ae1d1ec9482079231e898236e2b23c9ba" name="ae1d1ec9482079231e898236e2b23c9ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1d1ec9482079231e898236e2b23c9ba">&#9670;&nbsp;</a></span>ll</h2>
<div class="memitem">
@@ -187,11 +186,11 @@ This way you can find the \(10^{18}\) fibonacci numberMOD. I have given a genera
</tr>
</table>
</div><div class="memdoc">
<p>shorthand definition for <code>int64_t</code> </p>
<p >shorthand definition for <code>int64_t</code> </p>
</div>
</div>
<a id="a276c5a0e984cf60015b27252fe04fe6b"></a>
<a id="a276c5a0e984cf60015b27252fe04fe6b" name="a276c5a0e984cf60015b27252fe04fe6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a276c5a0e984cf60015b27252fe04fe6b">&#9670;&nbsp;</a></span>pb</h2>
<div class="memitem">
@@ -202,12 +201,12 @@ This way you can find the \(10^{18}\) fibonacci numberMOD. I have given a genera
</tr>
</table>
</div><div class="memdoc">
<p>shorthand definition for <code>int64_t</code> </p>
<p >shorthand definition for <code>int64_t</code> </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ad8389ed58fd0ec66df248014775ad1fa"></a>
<a id="ad8389ed58fd0ec66df248014775ad1fa" name="ad8389ed58fd0ec66df248014775ad1fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8389ed58fd0ec66df248014775ad1fa">&#9670;&nbsp;</a></span>ans()</h2>
<div class="memitem">
@@ -222,54 +221,54 @@ This way you can find the \(10^{18}\) fibonacci numberMOD. I have given a genera
</tr>
</table>
</div><div class="memdoc">
<p>Wrapper for Fibonacci </p><dl class="params"><dt>Parameters</dt><dd>
<p >Wrapper for Fibonacci </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>\(n^\text{th}\) Fibonacci number </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>\(n^\text{th}\) Fibonacci number </dd></dl>
<div class="fragment"><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span> (n == 0)</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span> (n &lt;= <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>)</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a35b7c98af53ad2ec18658679ad7d43de">fib_b</a>[n - 1];</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// F1</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector&lt;ll&gt;</a> F1(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> + 1);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">for</span> (ll i = 1; i &lt;= <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) F1[i] = <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a35b7c98af53ad2ec18658679ad7d43de">fib_b</a>[i - 1];</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// Transpose matrix</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector&lt;vector&lt;ll&gt;</a>&gt; T(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> + 1, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector&lt;ll&gt;</a>(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> + 1));</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">for</span> (ll i = 1; i &lt;= <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) {</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">for</span> (ll j = 1; j &lt;= <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; j++) {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (i &lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>) {</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span> (j == i + 1)</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; T[i][j] = 1;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; T[i][j] = 0;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; T[i][j] = fib_c[<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> - j];</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// T^n-1</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; T = <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a5769b745458157ef2679949155684f3b">power</a>(T, n - 1);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// T*F1</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; ll res = 0;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">for</span> (ll i = 1; i &lt;= <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) {</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; res = (res + (T[1][i] * F1[i]) % MOD) % MOD;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> res;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> {</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">if</span> (n == 0)</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">if</span> (n &lt;= <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>)</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a35b7c98af53ad2ec18658679ad7d43de">fib_b</a>[n - 1];</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// F1</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector&lt;ll&gt;</a> F1(<a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> + 1);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">for</span> (ll i = 1; i &lt;= <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) F1[i] = <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a35b7c98af53ad2ec18658679ad7d43de">fib_b</a>[i - 1];</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// Transpose matrix</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector&lt;vector&lt;ll&gt;</a>&gt; T(<a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> + 1, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector&lt;ll&gt;</a>(<a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> + 1));</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">for</span> (ll i = 1; i &lt;= <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">for</span> (ll j = 1; j &lt;= <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; j++) {</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">if</span> (i &lt; <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>) {</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">if</span> (j == i + 1)</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> T[i][j] = 1;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> T[i][j] = 0;</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> }</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> T[i][j] = fib_c[<a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> - j];</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> }</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> }</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="comment">// T^n-1</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> T = <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#a702a9fc90e79b05b863cc4efa26ae2ec">power</a>(T, n - 1);</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// T*F1</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> ll res = 0;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">for</span> (ll i = 1; i &lt;= <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) {</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> res = (res + (T[1][i] * F1[i]) % MOD) % MOD;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> }</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span>}</div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_a35b7c98af53ad2ec18658679ad7d43de"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#a35b7c98af53ad2ec18658679ad7d43de">fib_b</a></div><div class="ttdeci">vector&lt; ll &gt; fib_b</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:50</div></div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_a5769b745458157ef2679949155684f3b"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#a5769b745458157ef2679949155684f3b">power</a></div><div class="ttdeci">vector&lt; vector&lt; ll &gt; &gt; power(const vector&lt; vector&lt; ll &gt;&gt; &amp;A, ll p)</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:76</div></div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_a702a9fc90e79b05b863cc4efa26ae2ec"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#a702a9fc90e79b05b863cc4efa26ae2ec">power</a></div><div class="ttdeci">vector&lt; vector&lt; ll &gt; &gt; power(const vector&lt; vector&lt; ll &gt; &gt; &amp;A, ll p)</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:76</div></div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_a9977ad12548c4a49dee9dc3f0685aa54"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a></div><div class="ttdeci">ll mat_size</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:45</div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -284,30 +283,30 @@ This way you can find the \(10^{18}\) fibonacci numberMOD. I have given a genera
</tr>
</table>
</div><div class="memdoc">
<p>Main function </p>
<div class="fragment"><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">cin</a>.tie(0);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">cout</a>.tie(0);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; ll t;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">cin</a> &gt;&gt; t;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; ll i, j, x;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">while</span> (t--) {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">cin</a> &gt;&gt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">cin</a> &gt;&gt; x;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a35b7c98af53ad2ec18658679ad7d43de">fib_b</a>.pb(x);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">cin</a> &gt;&gt; x;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; fib_c.pb(x);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">cin</a> &gt;&gt; x;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">cout</a> &lt;&lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>(x) &lt;&lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a600eaf353befc174637855795f12d258">endl</a>;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a35b7c98af53ad2ec18658679ad7d43de">fib_b</a>.clear();</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; fib_c.clear();</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div>
<p >Main function </p>
<div class="fragment"><div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> {</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">cin</a>.tie(0);</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">cout</a>.tie(0);</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> ll t;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">cin</a> &gt;&gt; t;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> ll i, j, x;</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">while</span> (t--) {</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">cin</a> &gt;&gt; <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) {</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">cin</a> &gt;&gt; x;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a35b7c98af53ad2ec18658679ad7d43de">fib_b</a>.pb(x);</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> }</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) {</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">cin</a> &gt;&gt; x;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> fib_c.pb(x);</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> }</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">cin</a> &gt;&gt; x;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">cout</a> &lt;&lt; <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>(x) &lt;&lt; <a class="code hl_define" href="../../d7/d35/matrix__exponentiation_8cpp.html#a600eaf353befc174637855795f12d258">endl</a>;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a35b7c98af53ad2ec18658679ad7d43de">fib_b</a>.clear();</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> fib_c.clear();</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> }</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span>}</div>
<div class="ttc" id="abasic_istream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a></div></div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_a600eaf353befc174637855795f12d258"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#a600eaf353befc174637855795f12d258">endl</a></div><div class="ttdeci">#define endl</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:36</div></div>
@@ -315,22 +314,22 @@ This way you can find the \(10^{18}\) fibonacci numberMOD. I have given a genera
</div><!-- fragment -->
</div>
</div>
<a id="ac62a499b83c7895dd0aa69da1b64c904"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac62a499b83c7895dd0aa69da1b64c904">&#9670;&nbsp;</a></span>multiply()</h2>
<a id="a357cfbebfdc47a237a2862fe146af252" name="a357cfbebfdc47a237a2862fe146af252"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a357cfbebfdc47a237a2862fe146af252">&#9670;&nbsp;</a></span>multiply()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt;<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt;<a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a>&gt; &gt; multiply </td>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt; &gt; multiply </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt;&gt; &amp;&#160;</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>A</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt;&gt; &amp;&#160;</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>B</em>&#160;</td>
</tr>
<tr>
@@ -340,7 +339,7 @@ This way you can find the \(10^{18}\) fibonacci numberMOD. I have given a genera
</tr>
</table>
</div><div class="memdoc">
<p>To multiply 2 matrices </p><dl class="params"><dt>Parameters</dt><dd>
<p >To multiply 2 matrices </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">A</td><td>matrix 1 of size (m \(\times\)n) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">B</td><td><code>matrix</code> 2 of size (p \(\times\)q)<br />
@@ -350,30 +349,30 @@ This way you can find the \(10^{18}\) fibonacci numberMOD. I have given a genera
</dl>
<dl class="section note"><dt>Note</dt><dd>\(p=n\) </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>matrix of dimension (m \(\times\)q) </dd></dl>
<div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector&lt;vector&lt;ll&gt;</a>&gt; C(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> + 1, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector&lt;ll&gt;</a>(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> + 1));</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">for</span> (ll i = 1; i &lt;= <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">for</span> (ll j = 1; j &lt;= <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; j++) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">for</span> (ll z = 1; z &lt;= <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; z++) {</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; C[i][j] = (C[i][j] + (A[i][z] * B[z][j]) % MOD) % MOD;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> C;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> {</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector&lt;vector&lt;ll&gt;</a>&gt; C(<a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> + 1, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector&lt;ll&gt;</a>(<a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> + 1));</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">for</span> (ll i = 1; i &lt;= <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) {</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">for</span> (ll j = 1; j &lt;= <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; j++) {</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">for</span> (ll z = 1; z &lt;= <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; z++) {</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> C[i][j] = (C[i][j] + (A[i][z] * B[z][j]) % MOD) % MOD;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> }</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> }</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">return</span> C;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5769b745458157ef2679949155684f3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5769b745458157ef2679949155684f3b">&#9670;&nbsp;</a></span>power()</h2>
<a id="a702a9fc90e79b05b863cc4efa26ae2ec" name="a702a9fc90e79b05b863cc4efa26ae2ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a702a9fc90e79b05b863cc4efa26ae2ec">&#9670;&nbsp;</a></span>power()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt;<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt;<a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a>&gt; &gt; power </td>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt; &gt; power </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt;&gt; &amp;&#160;</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector</a>&lt; <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba">ll</a> &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>A</em>, </td>
</tr>
<tr>
@@ -389,7 +388,7 @@ This way you can find the \(10^{18}\) fibonacci numberMOD. I have given a genera
</tr>
</table>
</div><div class="memdoc">
<p>computing integer power of a matrix using recursive multiplication. </p><dl class="section note"><dt>Note</dt><dd>A must be a square matrix for this algorithm. </dd></dl>
<p >computing integer power of a matrix using recursive multiplication. </p><dl class="section note"><dt>Note</dt><dd>A must be a square matrix for this algorithm. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">A</td><td>base matrix </td></tr>
@@ -398,28 +397,28 @@ This way you can find the \(10^{18}\) fibonacci numberMOD. I have given a genera
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>matrix of same dimension as A </dd></dl>
<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span> (p == 1)</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> A;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (p % 2 == 1) {</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ac62a499b83c7895dd0aa69da1b64c904">multiply</a>(A, <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a5769b745458157ef2679949155684f3b">power</a>(A, p - 1));</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector&lt;vector&lt;ll&gt;</a>&gt; X = <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a5769b745458157ef2679949155684f3b">power</a>(A, p / 2);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ac62a499b83c7895dd0aa69da1b64c904">multiply</a>(X, X);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_ac62a499b83c7895dd0aa69da1b64c904"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#ac62a499b83c7895dd0aa69da1b64c904">multiply</a></div><div class="ttdeci">vector&lt; vector&lt; ll &gt; &gt; multiply(const vector&lt; vector&lt; ll &gt;&gt; &amp;A, const vector&lt; vector&lt; ll &gt;&gt; &amp;B)</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:57</div></div>
<div class="fragment"><div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> {</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">if</span> (p == 1)</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span> A;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">if</span> (p % 2 == 1) {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#a357cfbebfdc47a237a2862fe146af252">multiply</a>(A, <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#a702a9fc90e79b05b863cc4efa26ae2ec">power</a>(A, p - 1));</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">vector&lt;vector&lt;ll&gt;</a>&gt; X = <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#a702a9fc90e79b05b863cc4efa26ae2ec">power</a>(A, p / 2);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#a357cfbebfdc47a237a2862fe146af252">multiply</a>(X, X);</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> }</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span>}</div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_a357cfbebfdc47a237a2862fe146af252"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#a357cfbebfdc47a237a2862fe146af252">multiply</a></div><div class="ttdeci">vector&lt; vector&lt; ll &gt; &gt; multiply(const vector&lt; vector&lt; ll &gt; &gt; &amp;A, const vector&lt; vector&lt; ll &gt; &gt; &amp;B)</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:57</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d35/matrix__exponentiation_8cpp_a5769b745458157ef2679949155684f3b_cgraph.svg" width="184" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d35/matrix__exponentiation_8cpp_a702a9fc90e79b05b863cc4efa26ae2ec_cgraph.svg" width="184" height="62"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a35b7c98af53ad2ec18658679ad7d43de"></a>
<a id="a35b7c98af53ad2ec18658679ad7d43de" name="a35b7c98af53ad2ec18658679ad7d43de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35b7c98af53ad2ec18658679ad7d43de">&#9670;&nbsp;</a></span>fib_b</h2>
<div class="memitem">
@@ -430,11 +429,11 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>global vector variables used in the <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> function. </p><dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000008">Todo:</a></b></dt><dd>@stepfencurryxiao add documetnation </dd></dl>
<p >global vector variables used in the <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> function. </p><dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000008">Todo:</a></b></dt><dd>@stepfencurryxiao add documetnation </dd></dl>
</div>
</div>
<a id="a9977ad12548c4a49dee9dc3f0685aa54"></a>
<a id="a9977ad12548c4a49dee9dc3f0685aa54" name="a9977ad12548c4a49dee9dc3f0685aa54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9977ad12548c4a49dee9dc3f0685aa54">&#9670;&nbsp;</a></span>mat_size</h2>
<div class="memitem">
@@ -445,7 +444,7 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>global variable mat_size </p><dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000007">Todo:</a></b></dt><dd>@stepfencurryxiao add documetnation </dd></dl>
<p >global variable mat_size </p><dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000007">Todo:</a></b></dt><dd>@stepfencurryxiao add documetnation </dd></dl>
</div>
</div>
@@ -455,7 +454,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_9510827d0b234b3cc54b29892f217477.html">others</a></li><li class="navelem"><a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html">matrix_exponentiation.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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -2,13 +2,11 @@ var matrix__exponentiation_8cpp =
[
[ "endl", "d7/d35/matrix__exponentiation_8cpp.html#a600eaf353befc174637855795f12d258", null ],
[ "ll", "d7/d35/matrix__exponentiation_8cpp.html#ae1d1ec9482079231e898236e2b23c9ba", null ],
[ "MOD", "d7/d35/matrix__exponentiation_8cpp.html#aca7d5718ab8c38506adb3bef2469b319", null ],
[ "pb", "d7/d35/matrix__exponentiation_8cpp.html#a276c5a0e984cf60015b27252fe04fe6b", null ],
[ "ans", "d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa", null ],
[ "main", "d7/d35/matrix__exponentiation_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
[ "multiply", "d7/d35/matrix__exponentiation_8cpp.html#ac62a499b83c7895dd0aa69da1b64c904", null ],
[ "power", "d7/d35/matrix__exponentiation_8cpp.html#a5769b745458157ef2679949155684f3b", null ],
[ "multiply", "d7/d35/matrix__exponentiation_8cpp.html#a357cfbebfdc47a237a2862fe146af252", null ],
[ "power", "d7/d35/matrix__exponentiation_8cpp.html#a702a9fc90e79b05b863cc4efa26ae2ec", null ],
[ "fib_b", "d7/d35/matrix__exponentiation_8cpp.html#a35b7c98af53ad2ec18658679ad7d43de", null ],
[ "fib_c", "d7/d35/matrix__exponentiation_8cpp.html#a0cbd1162483ef7eccd5b947b2e01b1ab", null ],
[ "mat_size", "d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54", null ]
];

View File

@@ -1,4 +0,0 @@
<map id="power" name="power">
<area shape="rect" id="node1" title=" " alt="" coords="5,5,64,32"/>
<area shape="rect" id="node2" href="$d7/d35/matrix__exponentiation_8cpp.html#ac62a499b83c7895dd0aa69da1b64c904" title=" " alt="" coords="112,5,179,32"/>
</map>

View File

@@ -1 +0,0 @@
bce3e1ffabf6cff3904bb1331eef0c1c

View File

@@ -0,0 +1,4 @@
<map id="power" name="power">
<area shape="rect" id="node1" title=" " alt="" coords="5,29,64,56"/>
<area shape="rect" id="node2" href="$d7/d35/matrix__exponentiation_8cpp.html#a357cfbebfdc47a237a2862fe146af252" title=" " alt="" coords="112,29,179,56"/>
</map>

View File

@@ -0,0 +1 @@
4f20448269cd93e1b746e615e33e28e2

View File

@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: power Pages: 1 -->
<svg width="138pt" height="28pt"
viewBox="0.00 0.00 138.00 28.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 24)">
<svg width="138pt" height="46pt"
viewBox="0.00 0.00 138.00 46.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 42)">
<title>power</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-24 134,-24 134,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-42 134,-42 134,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -18,10 +18,16 @@
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node1 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node1</title>
<path fill="none" stroke="midnightblue" d="M9.36,-19.76C3.21,-28.57 7.43,-38 22,-38 30.88,-38 35.91,-34.5 37.1,-29.77"/>
<polygon fill="midnightblue" stroke="midnightblue" points="40.43,-28.63 34.64,-19.76 33.63,-30.3 40.43,-28.63"/>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d7/d35/matrix__exponentiation_8cpp.html#ac62a499b83c7895dd0aa69da1b64c904" target="_top" xlink:title=" ">
<g id="a_node2"><a xlink:href="../../d7/d35/matrix__exponentiation_8cpp.html#a357cfbebfdc47a237a2862fe146af252" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="80,-0.5 80,-19.5 130,-19.5 130,-0.5 80,-0.5"/>
<text text-anchor="middle" x="105" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">multiply</text>
</a>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: numerical_methods/lu_decomposition.h Pages: 1 -->
<svg width="256pt" height="106pt"

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: data_structures/linkedlist_implentation_usingarray.cpp Pages: 1 -->
<svg width="154pt" height="95pt"

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,6 +0,0 @@
<map id="Solution" name="Solution">
<area shape="rect" id="node1" title=" " alt="" coords="163,213,234,240"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector.html" title=" " alt="" coords="121,95,277,136"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector.html" title=" " alt="" coords="5,5,125,32"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector.html" title=" " alt="" coords="301,102,433,129"/>
</map>

View File

@@ -1 +0,0 @@
961d91f5abce03360d0ac6214824782b

View File

@@ -1,80 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
-->
<!-- Title: Solution Pages: 1 -->
<svg width="329pt" height="184pt"
viewBox="0.00 0.00 328.50 184.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 180)">
<title>Solution</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-180 324.5,-180 324.5,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title=" ">
<polygon fill="#bfbfbf" stroke="black" points="118.5,-0.5 118.5,-19.5 171.5,-19.5 171.5,-0.5 118.5,-0.5"/>
<text text-anchor="middle" x="145" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">Solution</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="86.5,-78.5 86.5,-108.5 203.5,-108.5 203.5,-78.5 86.5,-78.5"/>
<text text-anchor="start" x="94.5" y="-96.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector&lt; std::vector</text>
<text text-anchor="middle" x="145" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; int &gt; &gt;</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node1 -->
<g id="edge1" class="edge">
<title>Node2&#45;&gt;Node1</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M145,-68.25C145,-51.78 145,-30.99 145,-19.54"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="141.5,-68.3 145,-78.3 148.5,-68.3 141.5,-68.3"/>
<text text-anchor="middle" x="160.5" y="-52" font-family="Helvetica,sans-Serif" font-size="10.00"> bridge</text>
<text text-anchor="middle" x="160.5" y="-41" font-family="Helvetica,sans-Serif" font-size="10.00">graph</text>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="0,-156.5 0,-175.5 90,-175.5 90,-156.5 0,-156.5"/>
<text text-anchor="middle" x="45" y="-163.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector&lt; int &gt;</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node1 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node1</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M37.89,-146.59C31.96,-128.07 26.22,-99.28 38,-78 54.99,-47.32 92.54,-28.82 118.31,-19.26"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="34.64,-147.91 41.26,-156.18 41.24,-145.58 34.64,-147.91"/>
<text text-anchor="middle" x="57.5" y="-96.5" font-family="Helvetica,sans-Serif" font-size="10.00"> in_time</text>
<text text-anchor="middle" x="57.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">out_time</text>
</g>
<!-- Node3&#45;&gt;Node2 -->
<g id="edge2" class="edge">
<title>Node3&#45;&gt;Node2</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M65.62,-150.47C83.03,-138.19 107.81,-120.72 125.03,-108.58"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="63.42,-147.73 57.26,-156.36 67.45,-153.45 63.42,-147.73"/>
<text text-anchor="middle" x="120" y="-130" font-family="Helvetica,sans-Serif" font-size="10.00"> elements</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="221.5,-84 221.5,-103 320.5,-103 320.5,-84 221.5,-84"/>
<text text-anchor="middle" x="271" y="-91" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector&lt; bool &gt;</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node1 -->
<g id="edge4" class="edge">
<title>Node4&#45;&gt;Node1</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M249.02,-78.28C222.87,-61.37 180.02,-33.65 158.39,-19.66"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="247.22,-81.29 257.52,-83.78 251.02,-75.41 247.22,-81.29"/>
<text text-anchor="middle" x="235" y="-46.5" font-family="Helvetica,sans-Serif" font-size="10.00"> visited</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: MinHeapNode Pages: 1 -->
<svg width="126pt" height="30pt"

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: XOR Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d47/namespace_x_o_r.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,22 +90,21 @@ $(document).ready(function(){initNavTree('d7/d47/namespace_x_o_r.html','../../')
</div>
<div class="header">
<div class="headertitle">
<div class="title">XOR Namespace Reference</div> </div>
<div class="headertitle"><div class="title">XOR Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Functions for <a href="https://en.wikipedia.org/wiki/XOR_cipher">XOR cipher</a> algorithm.
<p>Functions for <a href="https://en.wikipedia.org/wiki/XOR_cipher" target="_blank">XOR cipher</a> algorithm.
<a href="../../d7/d47/namespace_x_o_r.html#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Functions for <a href="https://en.wikipedia.org/wiki/XOR_cipher">XOR cipher</a> algorithm. </p>
<div class="textblock"><p >Functions for <a href="https://en.wikipedia.org/wiki/XOR_cipher" target="_blank">XOR cipher</a> algorithm. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d7/d47/namespace_x_o_r.html">XOR</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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: std::is_integral&lt; uint256_t &gt; Struct Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d47/structstd_1_1is__integral_3_01uint256__t_01_4.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,8 +90,7 @@ $(document).ready(function(){initNavTree('d7/d47/structstd_1_1is__integral_3_01u
</div>
<div class="header">
<div class="headertitle">
<div class="title">std::is_integral&lt; uint256_t &gt; Struct Reference</div> </div>
<div class="headertitle"><div class="title">std::is_integral&lt; uint256_t &gt; Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -115,7 +114,7 @@ Collaboration diagram for std::is_integral&lt; uint256_t &gt;:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d8/dcc/namespacestd.html">std</a></li><li class="navelem"><a class="el" href="../../d7/d47/structstd_1_1is__integral_3_01uint256__t_01_4.html">is_integral&lt; uint256_t &gt;</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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: math/fibonacci_sum.cpp Pages: 1 -->
<svg width="193pt" height="84pt"

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: others/spiral_print.cpp Pages: 1 -->
<svg width="123pt" height="84pt"

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: math/inv_sqrt.cpp Pages: 1 -->
<svg width="250pt" height="84pt"

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: dynamic_programming/longest_increasing_subsequence.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d57/longest__increasing__subsequence_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('d7/d57/longest__increasing__subsequenc
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">longest_increasing_subsequence.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">longest_increasing_subsequence.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Calculate the length of the <a href="https://en.wikipedia.org/wiki/Longest_increasing_subsequence">longest increasing subsequence</a> in an array.
<p>Calculate the length of the <a href="https://en.wikipedia.org/wiki/Longest_increasing_subsequence" target="_blank">longest increasing subsequence</a> in an array.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;climits&gt;</code><br />
@@ -111,13 +110,13 @@ Include dependency graph for longest_increasing_subsequence.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:dd/d24/namespacedynamic__programming"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d24/namespacedynamic__programming.html">dynamic_programming</a></td></tr>
<tr class="memitem:dd/d24/namespacedynamic__programming"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d24/namespacedynamic__programming.html">dynamic_programming</a></td></tr>
<tr class="memdesc:dd/d24/namespacedynamic__programming"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dynamic Programming algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0a2215194e58786c34db1ccaf8031079"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d24/namespacedynamic__programming.html#a0a2215194e58786c34db1ccaf8031079">dynamic_programming::LIS</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint64_t &gt; &amp;a, const uint32_t &amp;n)</td></tr>
<tr class="memdesc:a0a2215194e58786c34db1ccaf8031079"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the longest increasing subsequence for the specified numbers. <a href="../../dd/d24/namespacedynamic__programming.html#a0a2215194e58786c34db1ccaf8031079">More...</a><br /></td></tr>
@@ -130,13 +129,13 @@ Functions</h2></td></tr>
<tr class="separator:abf9e6b7e6f15df4b525a2e7705ba3089"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Calculate the length of the <a href="https://en.wikipedia.org/wiki/Longest_increasing_subsequence">longest increasing subsequence</a> in an array. </p>
<p>In computer science, the longest increasing subsequence problem is to find a subsequence of a given sequence in which the subsequence's elements are in sorted order, lowest to highest, and in which the subsequence is as long as possible. This subsequence is not necessarily contiguous, or unique. Longest increasing subsequences are studied in the context of various disciplines related to mathematics, including algorithmics, random matrix theory, representation theory, and physics. The longest increasing subsequence problem is solvable in time O(n log n), where n denotes the length of the input sequence.</p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/kvedala">Krishna Vedala</a> </dd>
<div class="textblock"><p >Calculate the length of the <a href="https://en.wikipedia.org/wiki/Longest_increasing_subsequence" target="_blank">longest increasing subsequence</a> in an array. </p>
<p >In computer science, the longest increasing subsequence problem is to find a subsequence of a given sequence in which the subsequence's elements are in sorted order, lowest to highest, and in which the subsequence is as long as possible. This subsequence is not necessarily contiguous, or unique. Longest increasing subsequences are studied in the context of various disciplines related to mathematics, including algorithmics, random matrix theory, representation theory, and physics. The longest increasing subsequence problem is solvable in time O(n log n), where n denotes the length of the input sequence.</p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/kvedala" target="_blank">Krishna Vedala</a> </dd>
<dd>
<a href="https://github.com/Panquesito7">David Leal</a> </dd></dl>
<a href="https://github.com/Panquesito7" target="_blank">David Leal</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="abf9e6b7e6f15df4b525a2e7705ba3089"></a>
<a id="abf9e6b7e6f15df4b525a2e7705ba3089" name="abf9e6b7e6f15df4b525a2e7705ba3089"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf9e6b7e6f15df4b525a2e7705ba3089">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -171,31 +170,31 @@ Functions</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; uint32_t n = 0;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; </div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter size of array: &quot;</span>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; n;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> a(n);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter array elements: &quot;</span>;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; a[i];</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nThe result is: &quot;</span> &lt;&lt; <a class="code" href="../../dd/d24/namespacedynamic__programming.html#a0a2215194e58786c34db1ccaf8031079">dynamic_programming::LIS</a>(a, n)</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="../../d7/d57/longest__increasing__subsequence_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> {</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> uint32_t n = 0;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter size of array: &quot;</span>;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; n;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> a(n);</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter array elements: &quot;</span>;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; a[i];</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> }</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nThe result is: &quot;</span> &lt;&lt; <a class="code hl_function" href="../../dd/d24/namespacedynamic__programming.html#a0a2215194e58786c34db1ccaf8031079">dynamic_programming::LIS</a>(a, n)</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <a class="code hl_function" href="../../d7/d57/longest__increasing__subsequence_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span>}</div>
<div class="ttc" id="abasic_istream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a></div></div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
<div class="ttc" id="alongest__increasing__subsequence_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d7/d57/longest__increasing__subsequence_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition:</b> longest_increasing_subsequence.cpp:63</div></div>
<div class="ttc" id="anamespacedynamic__programming_html_a0a2215194e58786c34db1ccaf8031079"><div class="ttname"><a href="../../dd/d24/namespacedynamic__programming.html#a0a2215194e58786c34db1ccaf8031079">dynamic_programming::LIS</a></div><div class="ttdeci">uint64_t LIS(const std::vector&lt; uint64_t &gt; &amp;a, const uint32_t &amp;n)</div><div class="ttdoc">Calculate the longest increasing subsequence for the specified numbers.</div><div class="ttdef"><b>Definition:</b> longest_increasing_subsequence.cpp:39</div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt; uint64_t &gt;</a></div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -205,7 +204,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -230,17 +229,17 @@ Here is the call graph for this function:</div>
<p>Self-test implementations. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<p>&lt; The longest increasing subsequence is <code>{2,3,4,5,8}</code></p>
<div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> a = {15, 21, 2, 3, 4, 5, 8, 4, 1, 1};</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; uint32_t n = a.size();</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; uint32_t <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> = <a class="code" href="../../dd/d24/namespacedynamic__programming.html#a0a2215194e58786c34db1ccaf8031079">dynamic_programming::LIS</a>(a, n);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; assert(result ==</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; 5); <span class="comment">///&lt; The longest increasing subsequence is `{2,3,4,5,8}`</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Self-test implementations passed!&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div>
<p >&lt; The longest increasing subsequence is <code>{2,3,4,5,8}</code></p>
<div class="fragment"><div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> a = {15, 21, 2, 3, 4, 5, 8, 4, 1, 1};</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> uint32_t n = a.size();</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> uint32_t <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> = <a class="code hl_function" href="../../dd/d24/namespacedynamic__programming.html#a0a2215194e58786c34db1ccaf8031079">dynamic_programming::LIS</a>(a, n);</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> assert(result ==</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> 5); <span class="comment">///&lt; The longest increasing subsequence is `{2,3,4,5,8}`</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Self-test implementations passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span>}</div>
<div class="ttc" id="afibonacci__sum_8cpp_html_aadb40ac4c74a7efc0680b83eeee138aa"><div class="ttname"><a href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">math::fibonacci_sum::result</a></div><div class="ttdeci">uint64_t result(uint64_t n)</div><div class="ttdef"><b>Definition:</b> fibonacci_sum.cpp:76</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -257,7 +256,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_8a20dd5bfd5341a725342bf72b6b686f.html">dynamic_programming</a></li><li class="navelem"><a class="el" href="../../d7/d57/longest__increasing__subsequence_8cpp.html">longest_increasing_subsequence.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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test Pages: 1 -->
<svg width="306pt" height="66pt"

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="380pt" height="75pt"

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -1,9 +0,0 @@
<map id="machine_learning::neural_network::NeuralNetwork" name="machine_learning::neural_network::NeuralNetwork">
<area shape="rect" id="node1" title=" " alt="" coords="61,436,233,477"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector.html" title=" " alt="" coords="59,317,235,373"/>
<area shape="rect" id="node3" href="$dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html" title=" " alt="" coords="48,213,247,255"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string.html" title=" " alt="" coords="34,117,114,143"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string.html" title=" " alt="" coords="5,5,132,47"/>
<area shape="rect" id="node6" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector.html" title=" " alt="" coords="147,109,315,151"/>
<area shape="rect" id="node7" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/valarray.html" title=" " alt="" coords="157,13,314,39"/>
</map>

View File

@@ -1 +0,0 @@
bca987df8b9fe5eb03ef47ed84703e7d

View File

@@ -1,123 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
-->
<!-- Title: machine_learning::neural_network::NeuralNetwork Pages: 1 -->
<svg width="241pt" height="362pt"
viewBox="0.00 0.00 240.50 362.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 358)">
<title>machine_learning::neural_network::NeuralNetwork</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-358 236.5,-358 236.5,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title=" ">
<polygon fill="#bfbfbf" stroke="black" points="42,-0.5 42,-30.5 171,-30.5 171,-0.5 42,-0.5"/>
<text text-anchor="start" x="50" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::neural</text>
<text text-anchor="middle" x="106.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_network::NeuralNetwork</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="40.5,-78.5 40.5,-119.5 172.5,-119.5 172.5,-78.5 40.5,-78.5"/>
<text text-anchor="start" x="48.5" y="-107.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector&lt; machine</text>
<text text-anchor="start" x="48.5" y="-96.5" font-family="Helvetica,sans-Serif" font-size="10.00">_learning::neural_network</text>
<text text-anchor="middle" x="106.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">::layers::DenseLayer &gt;</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node1 -->
<g id="edge1" class="edge">
<title>Node2&#45;&gt;Node1</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M106.5,-68.03C106.5,-55.26 106.5,-40.97 106.5,-30.68"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="103,-68.27 106.5,-78.27 110,-68.27 103,-68.27"/>
<text text-anchor="middle" x="121.5" y="-52" font-family="Helvetica,sans-Serif" font-size="10.00"> layers</text>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="32,-167.5 32,-197.5 181,-197.5 181,-167.5 32,-167.5"/>
<text text-anchor="start" x="40" y="-185.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::neural</text>
<text text-anchor="middle" x="106.5" y="-174.5" font-family="Helvetica,sans-Serif" font-size="10.00">_network::layers::DenseLayer</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node2 -->
<g id="edge2" class="edge">
<title>Node3&#45;&gt;Node2</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M106.5,-157.07C106.5,-145.06 106.5,-130.79 106.5,-119.53"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="103,-157.3 106.5,-167.3 110,-157.3 103,-157.3"/>
<text text-anchor="middle" x="128.5" y="-141" font-family="Helvetica,sans-Serif" font-size="10.00"> elements</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="21.5,-251 21.5,-270 81.5,-270 81.5,-251 21.5,-251"/>
<text text-anchor="middle" x="51.5" y="-258" font-family="Helvetica,sans-Serif" font-size="10.00">std::string</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node3 -->
<g id="edge3" class="edge">
<title>Node4&#45;&gt;Node3</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M63.9,-242.37C73.7,-228.83 87.2,-210.17 96.35,-197.52"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="60.84,-240.63 57.81,-250.78 66.51,-244.73 60.84,-240.63"/>
<text text-anchor="middle" x="105.5" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00"> activation</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="0,-323.5 0,-353.5 95,-353.5 95,-323.5 0,-323.5"/>
<text text-anchor="start" x="8" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::basic_string&lt;</text>
<text text-anchor="middle" x="47.5" y="-330.5" font-family="Helvetica,sans-Serif" font-size="10.00"> char &gt;</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<title>Node5&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M48.78,-313.17C49.56,-298.4 50.5,-280.45 51.05,-270.06"/>
<polygon fill="midnightblue" stroke="midnightblue" points="45.28,-313.03 48.25,-323.2 52.27,-313.4 45.28,-313.03"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="106.5,-245.5 106.5,-275.5 232.5,-275.5 232.5,-245.5 106.5,-245.5"/>
<text text-anchor="start" x="114.5" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector&lt; std::valarray</text>
<text text-anchor="middle" x="169.5" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; double &gt; &gt;</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node3 -->
<g id="edge5" class="edge">
<title>Node6&#45;&gt;Node3</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M151.1,-237.31C140.51,-224.53 127.52,-208.86 118.3,-197.73"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="148.57,-239.74 157.65,-245.2 153.96,-235.27 148.57,-239.74"/>
<text text-anchor="middle" x="158" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00"> kernel</text>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/valarray.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="113.5,-329 113.5,-348 231.5,-348 231.5,-329 113.5,-329"/>
<text text-anchor="middle" x="172.5" y="-336" font-family="Helvetica,sans-Serif" font-size="10.00">std::valarray&lt; double &gt;</text>
</a>
</g>
</g>
<!-- Node7&#45;&gt;Node6 -->
<g id="edge6" class="edge">
<title>Node7&#45;&gt;Node6</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M171.76,-318.78C171.23,-305.4 170.53,-287.69 170.05,-275.52"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="168.26,-318.93 172.16,-328.78 175.26,-318.65 168.26,-318.93"/>
<text text-anchor="middle" x="193.5" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00"> elements</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.8 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Member List</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d40/classdata__structures_1_1tree__234_1_1_node.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,46 +90,45 @@ $(document).ready(function(){initNavTree('dd/d40/classdata__structures_1_1tree__
</div>
<div class="header">
<div class="headertitle">
<div class="title">data_structures::tree_234::Node Member List</div> </div>
<div class="headertitle"><div class="title">data_structures::tree_234::Node Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a></td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a22fd25c6c811c64b6b27b0850d8c532f">Contains</a>(int64_t item)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a22fd25c6c811c64b6b27b0850d8c532f">Contains</a>(int64_t item)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a></td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a5f6d943abaac52a236fe5d945e9d0e25">GetChild</a>(int8_t index)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a164574a9209b5df66368530d090b32c4">GetChild</a>(int8_t index)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad632a0440295bc88ceadae7478fe0d37">GetChildIndex</a>(Node *child)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#aac82e17daa088ede9ee00dc69c1e6f06">GetCount</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#aac82e17daa088ede9ee00dc69c1e6f06">GetCount</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a4808acb43668ff8cfd6f7cb44ceedad3">GetItem</a>(int8_t index)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a650f0ef26b7450e1addb5d80bb0ed629">GetItemIndex</a>(int64_t item)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a9ba4f652baa900f0634822ec380a6996">GetItemLeftChild</a>(int8_t item_index)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a976998a7553ab92ef79cc04fac305e5b">GetItemRightChild</a>(int8_t item_index)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a692a971c577511abdf7027e7e92a031b">GetLeftmostChild</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a2753b6053b8c86c5bd987a44fdfa0a57">GetMaxItem</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a650f0ef26b7450e1addb5d80bb0ed629">GetItemIndex</a>(int64_t item)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ab654d7376d3449fdc78edab0e7fed06e">GetItemLeftChild</a>(int8_t item_index)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a441cbee9896391f2b167d5aa7b4f8c95">GetItemRightChild</a>(int8_t item_index)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ac6f619a1605cb46196360889fff4529e">GetLeftmostChild</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a2753b6053b8c86c5bd987a44fdfa0a57">GetMaxItem</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a5438d0a47850f520b2262b5a42f75b71">GetMinItem</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a0f60199d0d175c248c67bfad9b9bdafe">GetNextPossibleChild</a>(int64_t item)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#abe9725b6422fd974642f9c9618b0f3be">GetRightmostChild</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8e809ae85ae00e937f67ddb76951b6bb">InsertItem</a>(int item)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a91322b3bb0b2b2175eb56e9e10d7db46">GetNextPossibleChild</a>(int64_t item)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a731f9ae385840cf0a06d55e7f9924a94">GetRightmostChild</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8e809ae85ae00e937f67ddb76951b6bb">InsertItem</a>(int item)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a306a30931f54c84098b38d6bc8f4a956">InsertItemByIndex</a>(int8_t index, int64_t item, Node *with_child, bool to_left=true)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#afd9f83e2d5d7f22f79c1348e98914631">Is2Node</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#afd9f83e2d5d7f22f79c1348e98914631">Is2Node</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a6c5f929afcbad5219646990edee22e18">Is34Node</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a4a37381c0ef93d5ae2118b2e554974dd">IsFull</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a4a37381c0ef93d5ae2118b2e554974dd">IsFull</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a607d8201b00b142bf1d6a34df2f936e8">IsLeaf</a>()</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a></td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a></td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5219979ea9a8baa3a273a9ec0f0c670">Node</a>(int64_t item)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8384b8c0fdc8e5e443010d2eb1187847">RemoveItemByIndex</a>(int8_t index, bool keep_left)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a28944bb16ec22650b47fe3e80e3e13f8">RemoveItemByIndex</a>(int8_t index, bool keep_left)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ab4e5f7b7b260bb81d9441652cc124c74">SetChild</a>(int8_t index, Node *child)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#af564fd4b0992fff69f90de201542d3d1">SetCount</a>(int8_t c)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#af564fd4b0992fff69f90de201542d3d1">SetCount</a>(int8_t c)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#aaa89a3016b5dd1be3552321c34343cbc">SetItem</a>(int8_t index, int64_t new_item)</td><td class="entry"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">data_structures::tree_234::Node</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: dynamic_programming/shortest_common_supersequence.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d65/shortest__common__supersequence_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,8 +93,7 @@ $(document).ready(function(){initNavTree('d7/d65/shortest__common__supersequence
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">shortest_common_supersequence.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">shortest_common_supersequence.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
@@ -112,16 +111,16 @@ Include dependency graph for shortest_common_supersequence.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:dd/d24/namespacedynamic__programming"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d24/namespacedynamic__programming.html">dynamic_programming</a></td></tr>
<tr class="memitem:dd/d24/namespacedynamic__programming"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d24/namespacedynamic__programming.html">dynamic_programming</a></td></tr>
<tr class="memdesc:dd/d24/namespacedynamic__programming"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dynamic Programming algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d3/deb/namespaceshortest__common__supersequence"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/deb/namespaceshortest__common__supersequence.html">shortest_common_supersequence</a></td></tr>
<tr class="memitem:d3/deb/namespaceshortest__common__supersequence"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/deb/namespaceshortest__common__supersequence.html">shortest_common_supersequence</a></td></tr>
<tr class="memdesc:d3/deb/namespaceshortest__common__supersequence"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shortest Common Super Sequence algorithm. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ad2ee8d7e67da9f6eb85146b08dad95e6"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d65/shortest__common__supersequence_8cpp.html#ad2ee8d7e67da9f6eb85146b08dad95e6">dynamic_programming::shortest_common_supersequence::scs</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;str1, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;str2)</td></tr>
<tr class="separator:ad2ee8d7e67da9f6eb85146b08dad95e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -131,14 +130,14 @@ Functions</h2></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>SCS is a string Z which is the shortest supersequence of strings X and Y (may not be continuous in Z, but order is maintained). </p>
<p>The idea is to use lookup table method as used in LCS. For example: example 1:- X: 'ABCXYZ', Y: 'ABZ' then Z will be 'ABCXYZ' (y is not continuous but in order)</p>
<p>For example: example 2:- X: 'AGGTAB', Y: 'GXTXAYB' then Z will be 'AGGXTXAYB' </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/ridhishjain">Ridhish Jain</a> </dd></dl>
<dl class="section see"><dt>See also</dt><dd>more on <a href="https://en.wikipedia.org/wiki/Shortest_common_supersequence_problem">SCS</a> </dd>
<div class="textblock"><p >SCS is a string Z which is the shortest supersequence of strings X and Y (may not be continuous in Z, but order is maintained). </p>
<p >The idea is to use lookup table method as used in LCS. For example: example 1:- X: 'ABCXYZ', Y: 'ABZ' then Z will be 'ABCXYZ' (y is not continuous but in order)</p>
<p >For example: example 2:- X: 'AGGTAB', Y: 'GXTXAYB' then Z will be 'AGGXTXAYB' </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/ridhishjain" target="_blank">Ridhish Jain</a> </dd></dl>
<dl class="section see"><dt>See also</dt><dd>more on <a href="https://en.wikipedia.org/wiki/Shortest_common_supersequence_problem" target="_blank">SCS</a> </dd>
<dd>
related <a class="el" href="../../d3/d06/ode__semi__implicit__euler_8cpp.html#abaeae8f62a018d197f0187a1c80a90fe" title="Problem statement for a system with first-order differential equations. Updates the system differenti...">problem</a> <a href="https://leetcode.com/problems/shortest-common-supersequence/">Leetcode</a> </dd></dl>
related <a class="el" href="../../d3/d06/ode__semi__implicit__euler_8cpp.html#abaeae8f62a018d197f0187a1c80a90fe" title="Problem statement for a system with first-order differential equations. Updates the system differenti...">problem</a> <a href="https://leetcode.com/problems/shortest-common-supersequence/" target="_blank">Leetcode</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -153,23 +152,23 @@ related <a class="el" href="../../d3/d06/ode__semi__implicit__euler_8cpp.html#ab
</tr>
</table>
</div><div class="memdoc">
<p>Main function (driver code) </p>
<div class="fragment"><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">// test for implementation</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="../../d7/d65/shortest__common__supersequence_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>();</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// user input</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s1, s2;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; s1;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; s2;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// user output</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code" href="../../d7/d65/shortest__common__supersequence_8cpp.html#ad2ee8d7e67da9f6eb85146b08dad95e6">dynamic_programming::shortest_common_supersequence::scs</a>(s1, s2);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div>
<p >Main function (driver code) </p>
<div class="fragment"><div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> {</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="comment">// test for implementation</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <a class="code hl_function" href="../../d7/d65/shortest__common__supersequence_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>();</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// user input</span></div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s1, s2;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; s1;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; s2;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// user output</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code hl_function" href="../../d7/d65/shortest__common__supersequence_8cpp.html#ad2ee8d7e67da9f6eb85146b08dad95e6">dynamic_programming::shortest_common_supersequence::scs</a>(s1, s2);</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span>}</div>
<div class="ttc" id="abasic_istream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a></div></div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
@@ -185,7 +184,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ad2ee8d7e67da9f6eb85146b08dad95e6"></a>
<a id="ad2ee8d7e67da9f6eb85146b08dad95e6" name="ad2ee8d7e67da9f6eb85146b08dad95e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2ee8d7e67da9f6eb85146b08dad95e6">&#9670;&nbsp;</a></span>scs()</h2>
<div class="memitem">
@@ -210,7 +209,7 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Function implementing Shortest Common Super-Sequence algorithm using look-up table method. </p><dl class="params"><dt>Parameters</dt><dd>
<p >Function implementing Shortest Common Super-Sequence algorithm using look-up table method. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str1</td><td>first string 'X' </td></tr>
<tr><td class="paramname">str2</td><td>second string 'Y' </td></tr>
@@ -218,81 +217,81 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string 'Z', superSequence of X and Y </dd></dl>
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; {</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// Edge cases</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// If either str1 or str2 or both are empty</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span>(str1.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>() &amp;&amp; str2.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>()) {</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(str1.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>()) {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> str2;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(str2.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>()) {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> str1;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// creating lookup table</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector &lt;std::vector &lt;int&gt;</a>&gt; lookup(str1.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>() + 1, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector &lt;int&gt;</a> (str2.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>() + 1, 0));</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=1; i &lt;= str1.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>(); i++) {</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j=1; j &lt;= str2.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>(); j++) {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span>(str1[i-1] == str2[j-1]) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; lookup[i][j] = lookup[i-1][j-1] + 1;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; lookup[i][j] = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(lookup[i-1][j], lookup[i][j-1]);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// making supersequence</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// i and j are initially pointed towards end of strings</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Super-sequence will be constructed backwards</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">int</span> i=str1.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>();</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">int</span> j=str2.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>();</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">while</span>(i&gt;0 &amp;&amp; j&gt;0) {</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// If the characters at i and j of both strings are same</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// We only need to add them once in s</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(str1[i-1] == str2[j-1]) {</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/push_back.html">push_back</a>(str1[i-1]);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; i--;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; j--;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// otherwise we check lookup table for recurrences of characters</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(lookup[i-1][j] &gt; lookup[i][j-1]) {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/push_back.html">push_back</a>(str1[i-1]);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; i--;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/push_back.html">push_back</a>(str2[j-1]);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; j--;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// copying remaining elements</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// if j becomes 0 before i</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">while</span>(i &gt; 0) {</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/push_back.html">push_back</a>(str1[i-1]);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; i--;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// if i becomes 0 before j</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">while</span>(j &gt; 0) {</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/push_back.html">push_back</a>(str2[j-1]);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; j--;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// As the super sequence is constructd backwards</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// reversing the string before returning gives us the correct output </span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/reverse.html">reverse</a>(s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/begin.html">begin</a>(), s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/end.html">end</a>());</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> s;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> {</div>
<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> <span class="comment">// Edge cases</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// If either str1 or str2 or both are empty</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">if</span>(str1.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>() &amp;&amp; str2.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>()) {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> }</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(str1.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>()) {</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">return</span> str2;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> }</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(str2.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>()) {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">return</span> str1;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// creating lookup table</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector &lt;std::vector &lt;int&gt;</a>&gt; lookup(str1.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>() + 1, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector &lt;int&gt;</a> (str2.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>() + 1, 0));</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=1; i &lt;= str1.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>(); i++) {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j=1; j &lt;= str2.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>(); j++) {</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">if</span>(str1[i-1] == str2[j-1]) {</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> lookup[i][j] = lookup[i-1][j-1] + 1;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> }</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> lookup[i][j] = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(lookup[i-1][j], lookup[i][j-1]);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> }</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// making supersequence</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// i and j are initially pointed towards end of strings</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// Super-sequence will be constructed backwards</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordtype">int</span> i=str1.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>();</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordtype">int</span> j=str2.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>();</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">while</span>(i&gt;0 &amp;&amp; j&gt;0) {</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// If the characters at i and j of both strings are same</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="comment">// We only need to add them once in s</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">if</span>(str1[i-1] == str2[j-1]) {</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/push_back.html">push_back</a>(str1[i-1]);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> i--;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> j--;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> }</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// otherwise we check lookup table for recurrences of characters</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">if</span>(lookup[i-1][j] &gt; lookup[i][j-1]) {</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/push_back.html">push_back</a>(str1[i-1]);</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> i--;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> }</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/push_back.html">push_back</a>(str2[j-1]);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> j--;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> }</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> }</div>
<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 class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="comment">// copying remaining elements</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// if j becomes 0 before i</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">while</span>(i &gt; 0) {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/push_back.html">push_back</a>(str1[i-1]);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> i--;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// if i becomes 0 before j</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">while</span>(j &gt; 0) {</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/push_back.html">push_back</a>(str2[j-1]);</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> j--;</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> }</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// As the super sequence is constructd backwards</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="comment">// reversing the string before returning gives us the correct output </span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/reverse.html">reverse</a>(s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/begin.html">begin</a>(), s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/end.html">end</a>());</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordflow">return</span> s;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> }</div>
<div class="ttc" id="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/begin.html">std::string::begin</a></div><div class="ttdeci">T begin(T... args)</div></div>
<div class="ttc" id="aempty_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">std::string::empty</a></div><div class="ttdeci">T empty(T... args)</div></div>
<div class="ttc" id="aend_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/end.html">std::string::end</a></div><div class="ttdeci">T end(T... args)</div></div>
@@ -310,7 +309,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -332,45 +331,45 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Test Function </p><dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// custom input vector</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector &lt;std::vector &lt;std::string&gt;</a>&gt; scsStrings {</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {<span class="stringliteral">&quot;ABCXYZ&quot;</span>, <span class="stringliteral">&quot;ABZ&quot;</span>},</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {<span class="stringliteral">&quot;ABZ&quot;</span>, <span class="stringliteral">&quot;ABCXYZ&quot;</span>},</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {<span class="stringliteral">&quot;AGGTAB&quot;</span>, <span class="stringliteral">&quot;GXTXAYB&quot;</span>},</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {<span class="stringliteral">&quot;X&quot;</span>, <span class="stringliteral">&quot;Y&quot;</span>},</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; };</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">// calculated output vector by scs function</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector &lt;std::string&gt;</a> calculatedOutput(4, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">int</span> i=0;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp; scsString : scsStrings) {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; calculatedOutput[i] = <a class="code" href="../../d7/d65/shortest__common__supersequence_8cpp.html#ad2ee8d7e67da9f6eb85146b08dad95e6">dynamic_programming::shortest_common_supersequence::scs</a>(</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; scsString[0], scsString[1]</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; );</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; i++;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// expected output vector acc to problem statement</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector &lt;std::string&gt;</a> expectedOutput {</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="stringliteral">&quot;ABCXYZ&quot;</span>,</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="stringliteral">&quot;ABCXYZ&quot;</span>,</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="stringliteral">&quot;AGGXTXAYB&quot;</span>,</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="stringliteral">&quot;XY&quot;</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; };</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">// Testing implementation via assert function</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// It will throw error if any of the expected test fails</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// Else it will give nothing</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i &lt; scsStrings.size(); i++) {</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; assert(expectedOutput[i] == calculatedOutput[i]);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All tests passed successfully!\n&quot;</span>;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;}</div>
<p >Test Function </p><dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> {</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// custom input vector</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector &lt;std::vector &lt;std::string&gt;</a>&gt; scsStrings {</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> {<span class="stringliteral">&quot;ABCXYZ&quot;</span>, <span class="stringliteral">&quot;ABZ&quot;</span>},</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> {<span class="stringliteral">&quot;ABZ&quot;</span>, <span class="stringliteral">&quot;ABCXYZ&quot;</span>},</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> {<span class="stringliteral">&quot;AGGTAB&quot;</span>, <span class="stringliteral">&quot;GXTXAYB&quot;</span>},</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> {<span class="stringliteral">&quot;X&quot;</span>, <span class="stringliteral">&quot;Y&quot;</span>},</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> };</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// calculated output vector by scs function</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector &lt;std::string&gt;</a> calculatedOutput(4, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">int</span> i=0;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp; scsString : scsStrings) {</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> calculatedOutput[i] = <a class="code hl_function" href="../../d7/d65/shortest__common__supersequence_8cpp.html#ad2ee8d7e67da9f6eb85146b08dad95e6">dynamic_programming::shortest_common_supersequence::scs</a>(</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> scsString[0], scsString[1]</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> );</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> i++;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> }</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="comment">// expected output vector acc to problem statement</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector &lt;std::string&gt;</a> expectedOutput {</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="stringliteral">&quot;ABCXYZ&quot;</span>,</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="stringliteral">&quot;ABCXYZ&quot;</span>,</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="stringliteral">&quot;AGGXTXAYB&quot;</span>,</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="stringliteral">&quot;XY&quot;</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> };</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> </div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="comment">// Testing implementation via assert function</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="comment">// It will throw error if any of the expected test fails</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="comment">// Else it will give nothing</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i &lt; scsStrings.size(); i++) {</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> assert(expectedOutput[i] == calculatedOutput[i]);</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> }</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All tests passed successfully!\n&quot;</span>;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span>}</div>
</div><!-- fragment -->
</div>
</div>
@@ -380,7 +379,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_8a20dd5bfd5341a725342bf72b6b686f.html">dynamic_programming</a></li><li class="navelem"><a class="el" href="../../d7/d65/shortest__common__supersequence_8cpp.html">shortest_common_supersequence.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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: dynamic_programming::shortest_common_supersequence::scs Pages: 1 -->
<svg width="354pt" height="218pt"

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="115pt" height="66pt"

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: operations_on_datastructures/inorder_successor_of_bst.cpp Pages: 1 -->
<svg width="193pt" height="95pt"

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: numerical_methods/bisection_method.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d6a/bisection__method_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('d7/d6a/bisection__method_8cpp.html','.
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">bisection_method.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">bisection_method.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Solve the equation \(f(x)=0\) using <a href="https://en.wikipedia.org/wiki/Bisection_method">bisection method</a>
<p>Solve the equation \(f(x)=0\) using <a href="https://en.wikipedia.org/wiki/Bisection_method" target="_blank">bisection method</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
@@ -110,17 +109,17 @@ Include dependency graph for bisection_method.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a002b2f4894492820fe708b1b7e7c5e70"><td class="memItemLeft" align="right" valign="top"><a id="a002b2f4894492820fe708b1b7e7c5e70"></a>
<tr class="memitem:a002b2f4894492820fe708b1b7e7c5e70"><td class="memItemLeft" align="right" valign="top"><a id="a002b2f4894492820fe708b1b7e7c5e70" name="a002b2f4894492820fe708b1b7e7c5e70"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>EPSILON</b>&#160;&#160;&#160; 1e-6</td></tr>
<tr class="separator:a002b2f4894492820fe708b1b7e7c5e70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a3abbca80bc98e7abcb3ae73abe0f14"><td class="memItemLeft" align="right" valign="top"><a id="a0a3abbca80bc98e7abcb3ae73abe0f14"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d6a/bisection__method_8cpp.html#a0a3abbca80bc98e7abcb3ae73abe0f14">MAX_ITERATIONS</a>&#160;&#160;&#160;50000</td></tr>
<tr class="memitem:a0a3abbca80bc98e7abcb3ae73abe0f14"><td class="memItemLeft" align="right" valign="top"><a id="a0a3abbca80bc98e7abcb3ae73abe0f14" name="a0a3abbca80bc98e7abcb3ae73abe0f14"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>MAX_ITERATIONS</b>&#160;&#160;&#160;50000</td></tr>
<tr class="memdesc:a0a3abbca80bc98e7abcb3ae73abe0f14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of iterations to check. <br /></td></tr>
<tr class="separator:a0a3abbca80bc98e7abcb3ae73abe0f14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a2003b5b2dcfff0769b957ab5c968b03d"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d6a/bisection__method_8cpp.html#a2003b5b2dcfff0769b957ab5c968b03d">eq</a> (double i)</td></tr>
<tr class="separator:a2003b5b2dcfff0769b957ab5c968b03d"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -131,14 +130,14 @@ Functions</h2></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Solve the equation \(f(x)=0\) using <a href="https://en.wikipedia.org/wiki/Bisection_method">bisection method</a> </p>
<p>Given two points \(a\) and \(b\) such that \(f(a)&lt;0\) and \(f(b)&gt;0\), then the \((i+1)^\text{th}\) approximation is given by: </p><p class="formulaDsp">
<div class="textblock"><p >Solve the equation \(f(x)=0\) using <a href="https://en.wikipedia.org/wiki/Bisection_method" target="_blank">bisection method</a> </p>
<p >Given two points \(a\) and \(b\) such that \(f(a)&lt;0\) and \(f(b)&gt;0\), then the \((i+1)^\text{th}\) approximation is given by: </p><p class="formulaDsp">
\[ x_{i+1} = \frac{a_i+b_i}{2} \]
</p>
<p> For the next iteration, the interval is selected as: \([a,x]\) if \(x&gt;0\) or \([x,b]\) if \(x&lt;0\). The Process is continued till a close enough approximation is achieved.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../de/dd3/newton__raphson__method_8cpp.html" title="Solve the equation using Newton-Raphson method for both real and complex solutions.">newton_raphson_method.cpp</a>, <a class="el" href="../../dd/d29/false__position_8cpp.html" title="Solve the equation using false position method, also known as the Secant method.">false_position.cpp</a>, secant_method.cpp </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a2003b5b2dcfff0769b957ab5c968b03d"></a>
<a id="a2003b5b2dcfff0769b957ab5c968b03d" name="a2003b5b2dcfff0769b957ab5c968b03d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2003b5b2dcfff0769b957ab5c968b03d">&#9670;&nbsp;</a></span>eq()</h2>
<div class="memitem">
@@ -161,10 +160,10 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
<p>define \(f(x)\) to find root for </p>
<div class="fragment"><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; {</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">return</span> (<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a>(i, 3) - (4 * i) - 9); <span class="comment">// original equation</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;}</div>
<p >define \(f(x)\) to find root for </p>
<div class="fragment"><div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordflow">return</span> (<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a>(i, 3) - (4 * i) - 9); <span class="comment">// original equation</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span>}</div>
<div class="ttc" id="apow_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a></div><div class="ttdeci">T pow(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -175,7 +174,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -190,46 +189,46 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>main function </p>
<div class="fragment"><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">double</span> a = -1, b = 1, x, z;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">int</span> i;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// loop to find initial intervals a, b</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="../../d7/d6a/bisection__method_8cpp.html#a0a3abbca80bc98e7abcb3ae73abe0f14">MAX_ITERATIONS</a>; i++) {</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; z = <a class="code" href="../../d7/d6a/bisection__method_8cpp.html#a2003b5b2dcfff0769b957ab5c968b03d">eq</a>(a);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; x = <a class="code" href="../../d7/d6a/bisection__method_8cpp.html#a2003b5b2dcfff0769b957ab5c968b03d">eq</a>(b);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../d7/d6a/bisection__method_8cpp.html#a1ab31b90bc584c635ec159468ceed9b2">sgn</a>(z) == <a class="code" href="../../d7/d6a/bisection__method_8cpp.html#a1ab31b90bc584c635ec159468ceed9b2">sgn</a>(x)) { <span class="comment">// same signs, increase interval</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; b++;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; a--;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// if opposite signs, we got our interval</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nFirst initial: &quot;</span> &lt;&lt; a;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nSecond initial: &quot;</span> &lt;&lt; b;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// start iterations</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="../../d7/d6a/bisection__method_8cpp.html#a0a3abbca80bc98e7abcb3ae73abe0f14">MAX_ITERATIONS</a>; i++) {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; x = (a + b) / 2;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; z = <a class="code" href="../../d7/d6a/bisection__method_8cpp.html#a2003b5b2dcfff0769b957ab5c968b03d">eq</a>(x);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\n\nz: &quot;</span> &lt;&lt; z &lt;&lt; <span class="stringliteral">&quot;\t[&quot;</span> &lt;&lt; a &lt;&lt; <span class="stringliteral">&quot; , &quot;</span> &lt;&lt; b</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; &lt;&lt; <span class="stringliteral">&quot; | Bisect: &quot;</span> &lt;&lt; x &lt;&lt; <span class="stringliteral">&quot;]&quot;</span>;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span> (z &lt; 0) {</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; a = x;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; b = x;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span> (std::abs(z) &lt; <a class="code" href="../../de/dd3/newton__raphson__method_8cpp.html#a75f355966e0a97665eaf5a4c79baa7af">EPSILON</a>) <span class="comment">// stoping criteria</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\n\nRoot: &quot;</span> &lt;&lt; x &lt;&lt; <span class="stringliteral">&quot;\t\tSteps: &quot;</span> &lt;&lt; i &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}</div>
<p >main function </p>
<div class="fragment"><div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> {</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">double</span> a = -1, b = 1, x, z;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordtype">int</span> i;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// loop to find initial intervals a, b</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code hl_define" href="../../d7/d6a/bisection__method_8cpp.html#a0a3abbca80bc98e7abcb3ae73abe0f14">MAX_ITERATIONS</a>; i++) {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> z = <a class="code hl_function" href="../../d7/d6a/bisection__method_8cpp.html#a2003b5b2dcfff0769b957ab5c968b03d">eq</a>(a);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> x = <a class="code hl_function" href="../../d7/d6a/bisection__method_8cpp.html#a2003b5b2dcfff0769b957ab5c968b03d">eq</a>(b);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="../../d7/d6a/bisection__method_8cpp.html#a1ab31b90bc584c635ec159468ceed9b2">sgn</a>(z) == <a class="code hl_function" href="../../d7/d6a/bisection__method_8cpp.html#a1ab31b90bc584c635ec159468ceed9b2">sgn</a>(x)) { <span class="comment">// same signs, increase interval</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> b++;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> a--;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> } <span class="keywordflow">else</span> { <span class="comment">// if opposite signs, we got our interval</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> }</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> }</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nFirst initial: &quot;</span> &lt;&lt; a;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nSecond initial: &quot;</span> &lt;&lt; b;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// start iterations</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code hl_define" href="../../d7/d6a/bisection__method_8cpp.html#a0a3abbca80bc98e7abcb3ae73abe0f14">MAX_ITERATIONS</a>; i++) {</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> x = (a + b) / 2;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> z = <a class="code hl_function" href="../../d7/d6a/bisection__method_8cpp.html#a2003b5b2dcfff0769b957ab5c968b03d">eq</a>(x);</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\n\nz: &quot;</span> &lt;&lt; z &lt;&lt; <span class="stringliteral">&quot;\t[&quot;</span> &lt;&lt; a &lt;&lt; <span class="stringliteral">&quot; , &quot;</span> &lt;&lt; b</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> &lt;&lt; <span class="stringliteral">&quot; | Bisect: &quot;</span> &lt;&lt; x &lt;&lt; <span class="stringliteral">&quot;]&quot;</span>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">if</span> (z &lt; 0) {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> a = x;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> b = x;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">if</span> (std::abs(z) &lt; <a class="code hl_variable" href="../../de/dd3/newton__raphson__method_8cpp.html#a75f355966e0a97665eaf5a4c79baa7af">EPSILON</a>) <span class="comment">// stoping criteria</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\n\nRoot: &quot;</span> &lt;&lt; x &lt;&lt; <span class="stringliteral">&quot;\t\tSteps: &quot;</span> &lt;&lt; i &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span>}</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="abisection__method_8cpp_html_a0a3abbca80bc98e7abcb3ae73abe0f14"><div class="ttname"><a href="../../d7/d6a/bisection__method_8cpp.html#a0a3abbca80bc98e7abcb3ae73abe0f14">MAX_ITERATIONS</a></div><div class="ttdeci">#define MAX_ITERATIONS</div><div class="ttdoc">Maximum number of iterations to check.</div><div class="ttdef"><b>Definition:</b> bisection_method.cpp:22</div></div>
<div class="ttc" id="abisection__method_8cpp_html_a1ab31b90bc584c635ec159468ceed9b2"><div class="ttname"><a href="../../d7/d6a/bisection__method_8cpp.html#a1ab31b90bc584c635ec159468ceed9b2">sgn</a></div><div class="ttdeci">int sgn(T val)</div><div class="ttdef"><b>Definition:</b> bisection_method.cpp:32</div></div>
@@ -245,7 +244,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a1ab31b90bc584c635ec159468ceed9b2"></a>
<a id="a1ab31b90bc584c635ec159468ceed9b2" name="a1ab31b90bc584c635ec159468ceed9b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ab31b90bc584c635ec159468ceed9b2">&#9670;&nbsp;</a></span>sgn()</h2>
<div class="memitem">
@@ -262,10 +261,10 @@ template&lt;typename T &gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>get the sign of any given number </p>
<div class="fragment"><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">return</span> (T(0) &lt; val) - (val &lt; T(0));</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div>
<p >get the sign of any given number </p>
<div class="fragment"><div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> (T(0) &lt; val) - (val &lt; T(0));</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>}</div>
</div><!-- fragment -->
</div>
</div>
@@ -275,7 +274,7 @@ template&lt;typename T &gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_9c6faab82c22511b50177aa2e38e2780.html">numerical_methods</a></li><li class="navelem"><a class="el" href="../../d7/d6a/bisection__method_8cpp.html">bisection_method.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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,6 +1,5 @@
var bisection__method_8cpp =
[
[ "EPSILON", "d7/d6a/bisection__method_8cpp.html#a002b2f4894492820fe708b1b7e7c5e70", null ],
[ "MAX_ITERATIONS", "d7/d6a/bisection__method_8cpp.html#a0a3abbca80bc98e7abcb3ae73abe0f14", null ],
[ "eq", "d7/d6a/bisection__method_8cpp.html#a2003b5b2dcfff0769b957ab5c968b03d", null ],
[ "main", "d7/d6a/bisection__method_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: eq Pages: 1 -->
<svg width="127pt" height="28pt"

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="226pt" height="104pt"

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: dynamic_programming/abbreviation.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d73/abbreviation_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('d7/d73/abbreviation_8cpp.html','../../
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">abbreviation.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">abbreviation.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Implementation of <a href="https://www.hackerrank.com/challenges/abbr/problem">Abbrievation</a>
<p>Implementation of <a href="https://www.hackerrank.com/challenges/abbr/problem" target="_blank">Abbrievation</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
@@ -111,20 +110,20 @@ Include dependency graph for abbreviation.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:dd/d24/namespacedynamic__programming"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d24/namespacedynamic__programming.html">dynamic_programming</a></td></tr>
<tr class="memitem:dd/d24/namespacedynamic__programming"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d24/namespacedynamic__programming.html">dynamic_programming</a></td></tr>
<tr class="memdesc:dd/d24/namespacedynamic__programming"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dynamic Programming algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d0/df8/namespaceabbreviation"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/df8/namespaceabbreviation.html">abbreviation</a></td></tr>
<tr class="memdesc:d0/df8/namespaceabbreviation"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://www.hackerrank.com/challenges/abbr/problem">Abbreviation</a> implementation. <br /></td></tr>
<tr class="memitem:d0/df8/namespaceabbreviation"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/df8/namespaceabbreviation.html">abbreviation</a></td></tr>
<tr class="memdesc:d0/df8/namespaceabbreviation"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://www.hackerrank.com/challenges/abbr/problem" target="_blank">Abbreviation</a> implementation. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a4e606aa4c764ad8d13e49eab002ec7b9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d73/abbreviation_8cpp.html#a4e606aa4c764ad8d13e49eab002ec7b9">dynamic_programming::abbreviation::abbreviation_recursion</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt;&gt; *memo, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt;&gt; *visited, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;str, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;result, uint32_t str_idx=0, uint32_t result_idx=0)</td></tr>
<tr class="memdesc:a4e606aa4c764ad8d13e49eab002ec7b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursive Dynamic Programming function. <a href="../../d7/d73/abbreviation_8cpp.html#a4e606aa4c764ad8d13e49eab002ec7b9">More...</a><br /></td></tr>
<tr class="separator:a4e606aa4c764ad8d13e49eab002ec7b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add60b8858720bf217df22d992d0fefaa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d73/abbreviation_8cpp.html#add60b8858720bf217df22d992d0fefaa">dynamic_programming::abbreviation::abbreviation_recursion</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt; &gt; *memo, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt; &gt; *visited, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;str, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;result, uint32_t str_idx=0, uint32_t result_idx=0)</td></tr>
<tr class="memdesc:add60b8858720bf217df22d992d0fefaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursive Dynamic Programming function. <a href="../../d7/d73/abbreviation_8cpp.html#add60b8858720bf217df22d992d0fefaa">More...</a><br /></td></tr>
<tr class="separator:add60b8858720bf217df22d992d0fefaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af53b2f647bee9c5b75ef8dd9ef685dc8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d73/abbreviation_8cpp.html#af53b2f647bee9c5b75ef8dd9ef685dc8">dynamic_programming::abbreviation::abbreviation</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;str, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;result)</td></tr>
<tr class="memdesc:af53b2f647bee9c5b75ef8dd9ef685dc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterative Dynamic Programming function. <a href="../../d7/d73/abbreviation_8cpp.html#af53b2f647bee9c5b75ef8dd9ef685dc8">More...</a><br /></td></tr>
<tr class="separator:af53b2f647bee9c5b75ef8dd9ef685dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -136,21 +135,21 @@ Functions</h2></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of <a href="https://www.hackerrank.com/challenges/abbr/problem">Abbrievation</a> </p>
<p>Given two strings, <code>a</code> and <code>b</code>, determine if it's possible to make <code>a</code> equal to <code>b</code> You can perform the following operations on the string <code>a</code>:</p><ol type="1">
<div class="textblock"><p >Implementation of <a href="https://www.hackerrank.com/challenges/abbr/problem" target="_blank">Abbrievation</a> </p>
<p >Given two strings, <code>a</code> and <code>b</code>, determine if it's possible to make <code>a</code> equal to <code>b</code> You can perform the following operations on the string <code>a</code>:</p><ol type="1">
<li>Capitalize zero or more of <code>a</code>'s lowercase letters.</li>
<li>Delete all of the remaining lowercase letters in <code>a</code>.</li>
</ol>
<h3><a class="anchor" id="autotoc_md59"></a>
Algorithm</h3>
<p>The idea is in the problem statement itself: iterate through characters of string <code>a</code> and <code>b</code> (for character indexes <code>i</code> and <code>j</code> respectively):</p><ol type="1">
<p >The idea is in the problem statement itself: iterate through characters of string <code>a</code> and <code>b</code> (for character indexes <code>i</code> and <code>j</code> respectively):</p><ol type="1">
<li>If <code>a[i]</code> and <code>b[j]</code> are equal, then move to next position</li>
<li>If <code>a[i]</code> is lowercase of <code>b[j]</code>, then explore two possibilities: a. Capitalize <code>a[i]</code> or b. Skip <code>a[i]</code></li>
<li>If the <code>a[i]</code> is not uppercase, just discard that character, else return <code>false</code></li>
</ol>
<p>Time Complexity: (O(|a|*|b|)) where <code>|a|</code> =&gt; length of string <code>a</code> </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/AshishYUO">Ashish Daulatabad</a> </dd></dl>
<p >Time Complexity: (O(|a|*|b|)) where <code>|a|</code> =&gt; length of string <code>a</code> </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/AshishYUO" target="_blank">Ashish Daulatabad</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="af53b2f647bee9c5b75ef8dd9ef685dc8"></a>
<a id="af53b2f647bee9c5b75ef8dd9ef685dc8" name="af53b2f647bee9c5b75ef8dd9ef685dc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af53b2f647bee9c5b75ef8dd9ef685dc8">&#9670;&nbsp;</a></span>abbreviation()</h2>
<div class="memitem">
@@ -177,7 +176,7 @@ Algorithm</h3>
</div><div class="memdoc">
<p>Iterative Dynamic Programming function. </p>
<p>Returns whether <code>s</code> can be converted to <code>t</code> with following rules: a. Capitalize zero or more of s's lowercase letters from string <code>s</code> b. remove all other lowercase letters from string <code>s</code> Note: The transition states for iterative is similar to recursive as well </p><dl class="params"><dt>Parameters</dt><dd>
<p >Returns whether <code>s</code> can be converted to <code>t</code> with following rules: a. Capitalize zero or more of s's lowercase letters from string <code>s</code> b. remove all other lowercase letters from string <code>s</code> Note: The transition states for iterative is similar to recursive as well </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>given string, which might not be abbreivated </td></tr>
<tr><td class="paramname">result</td><td>resultant abbreivated string </td></tr>
@@ -187,33 +186,33 @@ Algorithm</h3>
<dl class="section return"><dt>Returns</dt><dd><code>false</code> if string <code>str</code> cannot be converted to <code>result</code> </dd>
<dd>
<code>true</code> if string <code>str</code> can be converted to <code>result</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt; memo(</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; str.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(<a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>.size() + 1, <span class="keyword">false</span>));</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt;= str.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>(); ++i) {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; memo[i][0] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 1; i &lt;= <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>.size(); ++i) {</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; memo[0][i] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 1; i &lt;= str.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>(); ++i) {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">for</span> (uint32_t j = 1; j &lt;= <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>.size(); ++j) {</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">if</span> (str[i - 1] == result[j - 1]) {</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; memo[i][j] = memo[i - 1][j - 1];</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (str[i - 1] - 32 == result[j - 1]) {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; memo[i][j] = (memo[i - 1][j - 1] || memo[i - 1][j]);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span> (str[i - 1] &gt;= <span class="charliteral">&#39;A&#39;</span> &amp;&amp; str[i - 1] &lt;= <span class="charliteral">&#39;Z&#39;</span>) {</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; memo[i][j] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; memo[i][j] = memo[i - 1][j];</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> memo.back().back();</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> {</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt; memo(</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(<a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>.size() + 1, <span class="keyword">false</span>));</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">for</span> (uint32_t i = 0; i &lt;= str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>(); ++i) {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> memo[i][0] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> }</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">for</span> (uint32_t i = 1; i &lt;= <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>.size(); ++i) {</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> memo[0][i] = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">for</span> (uint32_t i = 1; i &lt;= str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>(); ++i) {</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordflow">for</span> (uint32_t j = 1; j &lt;= <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>.size(); ++j) {</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">if</span> (str[i - 1] == result[j - 1]) {</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> memo[i][j] = memo[i - 1][j - 1];</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (str[i - 1] - 32 == result[j - 1]) {</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> memo[i][j] = (memo[i - 1][j - 1] || memo[i - 1][j]);</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">if</span> (str[i - 1] &gt;= <span class="charliteral">&#39;A&#39;</span> &amp;&amp; str[i - 1] &lt;= <span class="charliteral">&#39;Z&#39;</span>) {</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> memo[i][j] = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> memo[i][j] = memo[i - 1][j];</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> }</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> }</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> }</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">return</span> memo.back().back();</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span>}</div>
<div class="ttc" id="afibonacci__sum_8cpp_html_aadb40ac4c74a7efc0680b83eeee138aa"><div class="ttname"><a href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">math::fibonacci_sum::result</a></div><div class="ttdeci">uint64_t result(uint64_t n)</div><div class="ttdef"><b>Definition:</b> fibonacci_sum.cpp:76</div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">std::string::size</a></div><div class="ttdeci">T size(T... args)</div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
@@ -226,8 +225,8 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a4e606aa4c764ad8d13e49eab002ec7b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e606aa4c764ad8d13e49eab002ec7b9">&#9670;&nbsp;</a></span>abbreviation_recursion()</h2>
<a id="add60b8858720bf217df22d992d0fefaa" name="add60b8858720bf217df22d992d0fefaa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add60b8858720bf217df22d992d0fefaa">&#9670;&nbsp;</a></span>abbreviation_recursion()</h2>
<div class="memitem">
<div class="memproto">
@@ -235,13 +234,13 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">bool dynamic_programming::abbreviation::abbreviation_recursion </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt;&gt; *&#160;</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt; &gt; *&#160;</td>
<td class="paramname"><em>memo</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt;&gt; *&#160;</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt; &gt; *&#160;</td>
<td class="paramname"><em>visited</em>, </td>
</tr>
<tr>
@@ -277,7 +276,7 @@ Here is the call graph for this function:</div>
</div><div class="memdoc">
<p>Recursive Dynamic Programming function. </p>
<p>Returns whether <code>s</code> can be converted to <code>t</code> with following rules: a. Capitalize zero or more of a's lowercase letters from string <code>s</code> b. remove all other lowercase letters from string <code>s</code> </p><dl class="params"><dt>Parameters</dt><dd>
<p >Returns whether <code>s</code> can be converted to <code>t</code> with following rules: a. Capitalize zero or more of a's lowercase letters from string <code>s</code> b. remove all other lowercase letters from string <code>s</code> </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">memo</td><td>To store the result </td></tr>
<tr><td class="paramname">visited</td><td>boolean to check if the result is already computed </td></tr>
@@ -291,67 +290,67 @@ Here is the call graph for this function:</div>
<dl class="section return"><dt>Returns</dt><dd><code>false</code> if string <code>str</code> cannot be converted to <code>result</code> </dd>
<dd>
<code>true</code> if string <code>str</code> can be converted to <code>result</code> </dd></dl>
<p><code>(str[i] == result[j])</code>: if str char at position i is equal to <code>result</code> char at position j, then s character is a capitalized one, move on to next character <code>str[i] - 32 == result[j]</code>: if <code>str[i]</code> character is lowercase of <code>result[j]</code> then explore two possibilites:</p><ol type="1">
<p ><code>(str[i] == result[j])</code>: if str char at position i is equal to <code>result</code> char at position j, then s character is a capitalized one, move on to next character <code>str[i] - 32 == result[j]</code>: if <code>str[i]</code> character is lowercase of <code>result[j]</code> then explore two possibilites:</p><ol type="1">
<li>convert it to capitalized letter and move both to next pointer <code>(i + 1, j + 1)</code></li>
<li>Discard the character <code>(str[i])</code> and move to next char <code>(i + 1, j)</code></li>
</ol>
<div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = memo-&gt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/at.html">at</a>(str_idx).at(result_idx);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span> (str_idx == str.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() &amp;&amp; result_idx == <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>.size()) {</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (str_idx == str.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() &amp;&amp; result_idx != <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>.size()) {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// result `t` is not converted, return false</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!visited-&gt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/at.html">at</a>(str_idx).at(result_idx)) {<span class="comment"></span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> * `(str[i] == result[j])`: if str char at position i is equal to</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> * `result` char at position j, then s character is a capitalized one,</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> * move on to next character `str[i] - 32 == result[j]`:</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> * if `str[i]` character is lowercase of `result[j]` then explore two</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> * possibilites:</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> * 1. convert it to capitalized letter and move both to next pointer</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> * `(i + 1, j + 1)`</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> * 2. Discard the character `(str[i])` and move to next char `(i + 1,</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> * j)`</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span> (str[str_idx] == result[result_idx]) {</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code" href="../../d7/d73/abbreviation_8cpp.html#a4e606aa4c764ad8d13e49eab002ec7b9">abbreviation_recursion</a>(memo, visited, str, result,</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; str_idx + 1, result_idx + 1);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (str[str_idx] - 32 == result[result_idx]) {</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code" href="../../d7/d73/abbreviation_8cpp.html#a4e606aa4c764ad8d13e49eab002ec7b9">abbreviation_recursion</a>(memo, visited, str, result,</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; str_idx + 1, result_idx + 1) ||</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="../../d7/d73/abbreviation_8cpp.html#a4e606aa4c764ad8d13e49eab002ec7b9">abbreviation_recursion</a>(memo, visited, str, result,</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; str_idx + 1, result_idx);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// if `str[i]` is uppercase, then cannot be converted, return</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// `false`</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// else `str[i]` is lowercase, only option is to discard this</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// character</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span> (str[str_idx] &gt;= <span class="charliteral">&#39;A&#39;</span> &amp;&amp; str[str_idx] &lt;= <span class="charliteral">&#39;Z&#39;</span>) {</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code" href="../../d7/d73/abbreviation_8cpp.html#a4e606aa4c764ad8d13e49eab002ec7b9">abbreviation_recursion</a>(memo, visited, str, result,</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; str_idx + 1, result_idx);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; (*memo)[str_idx][result_idx] = <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; (*visited)[str_idx][result_idx] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> (*memo)[str_idx][result_idx];</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div>
<div class="ttc" id="aabbreviation_8cpp_html_a4e606aa4c764ad8d13e49eab002ec7b9"><div class="ttname"><a href="../../d7/d73/abbreviation_8cpp.html#a4e606aa4c764ad8d13e49eab002ec7b9">dynamic_programming::abbreviation::abbreviation_recursion</a></div><div class="ttdeci">bool abbreviation_recursion(std::vector&lt; std::vector&lt; bool &gt;&gt; *memo, std::vector&lt; std::vector&lt; bool &gt;&gt; *visited, const std::string &amp;str, const std::string &amp;result, uint32_t str_idx=0, uint32_t result_idx=0)</div><div class="ttdoc">Recursive Dynamic Programming function.</div><div class="ttdef"><b>Definition:</b> abbreviation.cpp:58</div></div>
<div class="fragment"><div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> {</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = memo-&gt;<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/at.html">at</a>(str_idx).at(result_idx);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">if</span> (str_idx == str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() &amp;&amp; result_idx == <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>.size()) {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (str_idx == str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() &amp;&amp; result_idx != <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>.size()) {</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// result `t` is not converted, return false</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!visited-&gt;at(str_idx).at(result_idx)) {<span class="comment"></span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment"> * `(str[i] == result[j])`: if str char at position i is equal to</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> * `result` char at position j, then s character is a capitalized one,</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"> * move on to next character `str[i] - 32 == result[j]`:</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment"> * if `str[i]` character is lowercase of `result[j]` then explore two</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment"> * possibilites:</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment"> * 1. convert it to capitalized letter and move both to next pointer</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment"> * `(i + 1, j + 1)`</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment"> * 2. Discard the character `(str[i])` and move to next char `(i + 1,</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment"> * j)`</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment"> */</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">if</span> (str[str_idx] == result[result_idx]) {</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code hl_function" href="../../d7/d73/abbreviation_8cpp.html#add60b8858720bf217df22d992d0fefaa">abbreviation_recursion</a>(memo, visited, str, result,</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> str_idx + 1, result_idx + 1);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (str[str_idx] - 32 == result[result_idx]) {</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code hl_function" href="../../d7/d73/abbreviation_8cpp.html#add60b8858720bf217df22d992d0fefaa">abbreviation_recursion</a>(memo, visited, str, result,</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> str_idx + 1, result_idx + 1) ||</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_function" href="../../d7/d73/abbreviation_8cpp.html#add60b8858720bf217df22d992d0fefaa">abbreviation_recursion</a>(memo, visited, str, result,</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> str_idx + 1, result_idx);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// if `str[i]` is uppercase, then cannot be converted, return</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// `false`</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// else `str[i]` is lowercase, only option is to discard this</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// character</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">if</span> (str[str_idx] &gt;= <span class="charliteral">&#39;A&#39;</span> &amp;&amp; str[str_idx] &lt;= <span class="charliteral">&#39;Z&#39;</span>) {</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code hl_function" href="../../d7/d73/abbreviation_8cpp.html#add60b8858720bf217df22d992d0fefaa">abbreviation_recursion</a>(memo, visited, str, result,</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> str_idx + 1, result_idx);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> }</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> }</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> }</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> (*memo)[str_idx][result_idx] = <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> (*visited)[str_idx][result_idx] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">return</span> (*memo)[str_idx][result_idx];</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span>}</div>
<div class="ttc" id="aabbreviation_8cpp_html_add60b8858720bf217df22d992d0fefaa"><div class="ttname"><a href="../../d7/d73/abbreviation_8cpp.html#add60b8858720bf217df22d992d0fefaa">dynamic_programming::abbreviation::abbreviation_recursion</a></div><div class="ttdeci">bool abbreviation_recursion(std::vector&lt; std::vector&lt; bool &gt; &gt; *memo, std::vector&lt; std::vector&lt; bool &gt; &gt; *visited, const std::string &amp;str, const std::string &amp;result, uint32_t str_idx=0, uint32_t result_idx=0)</div><div class="ttdoc">Recursive Dynamic Programming function.</div><div class="ttdef"><b>Definition:</b> abbreviation.cpp:58</div></div>
<div class="ttc" id="aat_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/at.html">std::vector::at</a></div><div class="ttdeci">T at(T... args)</div></div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_ad8389ed58fd0ec66df248014775ad1fa"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a></div><div class="ttdeci">ll ans(ll n)</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:91</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d73/abbreviation_8cpp_a4e606aa4c764ad8d13e49eab002ec7b9_cgraph.svg" width="352" height="139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d73/abbreviation_8cpp_add60b8858720bf217df22d992d0fefaa_cgraph.svg" width="352" height="102"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -369,10 +368,10 @@ Here is the call graph for this function:</div>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="../../d7/d73/abbreviation_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> {</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <a class="code hl_function" href="../../d7/d73/abbreviation_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span>}</div>
<div class="ttc" id="aabbreviation_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d7/d73/abbreviation_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self test-implementations.</div><div class="ttdef"><b>Definition:</b> abbreviation.cpp:152</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -383,7 +382,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -408,40 +407,40 @@ Here is the call graph for this function:</div>
<p>Self test-implementations. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s = <span class="stringliteral">&quot;daBcd&quot;</span>, t = <span class="stringliteral">&quot;ABC&quot;</span>;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt; memo(s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1,</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(t.size() + 1, <span class="keyword">false</span>)),</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; visited(s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(t.size() + 1, <span class="keyword">false</span>));</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; assert(dynamic_programming::abbreviation::abbreviation_recursion(</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; &amp;memo, &amp;visited, s, t) == <span class="keyword">true</span>);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; assert(dynamic_programming::abbreviation::abbreviation(s, t) == <span class="keyword">true</span>);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; s = <span class="stringliteral">&quot;XXVVnDEFYgYeMXzWINQYHAQKKOZEYgSRCzLZAmUYGUGILjMDET&quot;</span>;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; t = <span class="stringliteral">&quot;XXVVDEFYYMXWINQYHAQKKOZEYSRCLZAUYGUGILMDETQVWU&quot;</span>;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; memo = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt;(</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(t.size() + 1, <span class="keyword">false</span>));</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; visited = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt;(</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(t.size() + 1, <span class="keyword">false</span>));</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; assert(dynamic_programming::abbreviation::abbreviation_recursion(</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; &amp;memo, &amp;visited, s, t) == <span class="keyword">false</span>);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; assert(dynamic_programming::abbreviation::abbreviation(s, t) == <span class="keyword">false</span>);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; s = <span class="stringliteral">&quot;DRFNLZZVHLPZWIupjwdmqafmgkg&quot;</span>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; t = <span class="stringliteral">&quot;DRFNLZZVHLPZWI&quot;</span>;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; memo = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt;(</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(t.size() + 1, <span class="keyword">false</span>));</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; visited = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt;(</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(t.size() + 1, <span class="keyword">false</span>));</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; assert(dynamic_programming::abbreviation::abbreviation_recursion(</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; &amp;memo, &amp;visited, s, t) == <span class="keyword">true</span>);</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; assert(dynamic_programming::abbreviation::abbreviation(s, t) == <span class="keyword">true</span>);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> {</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s = <span class="stringliteral">&quot;daBcd&quot;</span>, t = <span class="stringliteral">&quot;ABC&quot;</span>;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt; memo(s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1,</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(t.size() + 1, <span class="keyword">false</span>)),</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> visited(s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(t.size() + 1, <span class="keyword">false</span>));</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> assert(dynamic_programming::abbreviation::abbreviation_recursion(</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> &amp;memo, &amp;visited, s, t) == <span class="keyword">true</span>);</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> assert(dynamic_programming::abbreviation::abbreviation(s, t) == <span class="keyword">true</span>);</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> s = <span class="stringliteral">&quot;XXVVnDEFYgYeMXzWINQYHAQKKOZEYgSRCzLZAmUYGUGILjMDET&quot;</span>;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> t = <span class="stringliteral">&quot;XXVVDEFYYMXWINQYHAQKKOZEYSRCLZAUYGUGILMDETQVWU&quot;</span>;</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> memo = <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt;(</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(t.size() + 1, <span class="keyword">false</span>));</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> visited = <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt;(</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(t.size() + 1, <span class="keyword">false</span>));</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> assert(dynamic_programming::abbreviation::abbreviation_recursion(</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> &amp;memo, &amp;visited, s, t) == <span class="keyword">false</span>);</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> assert(dynamic_programming::abbreviation::abbreviation(s, t) == <span class="keyword">false</span>);</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> s = <span class="stringliteral">&quot;DRFNLZZVHLPZWIupjwdmqafmgkg&quot;</span>;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> t = <span class="stringliteral">&quot;DRFNLZZVHLPZWI&quot;</span>;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> memo = <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt;(</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(t.size() + 1, <span class="keyword">false</span>));</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> visited = <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt;(</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(t.size() + 1, <span class="keyword">false</span>));</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> assert(dynamic_programming::abbreviation::abbreviation_recursion(</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> &amp;memo, &amp;visited, s, t) == <span class="keyword">true</span>);</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> assert(dynamic_programming::abbreviation::abbreviation(s, t) == <span class="keyword">true</span>);</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span>}</div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -458,7 +457,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_8a20dd5bfd5341a725342bf72b6b686f.html">dynamic_programming</a></li><li class="navelem"><a class="el" href="../../d7/d73/abbreviation_8cpp.html">abbreviation.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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
var abbreviation_8cpp =
[
[ "abbreviation", "d7/d73/abbreviation_8cpp.html#af53b2f647bee9c5b75ef8dd9ef685dc8", null ],
[ "abbreviation_recursion", "d7/d73/abbreviation_8cpp.html#a4e606aa4c764ad8d13e49eab002ec7b9", null ],
[ "abbreviation_recursion", "d7/d73/abbreviation_8cpp.html#add60b8858720bf217df22d992d0fefaa", null ],
[ "main", "d7/d73/abbreviation_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
[ "test", "d7/d73/abbreviation_8cpp.html#aa8dca7b867074164d5f45b0f3851269d", null ]
];

View File

@@ -1 +0,0 @@
b9e657697f10093d3421953fc545598a

View File

@@ -1,75 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
-->
<!-- Title: dynamic_programming::abbreviation::abbreviation_recursion Pages: 1 -->
<svg width="264pt" height="104pt"
viewBox="0.00 0.00 264.00 104.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 100)">
<title>dynamic_programming::abbreviation::abbreviation_recursion</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-100 260,-100 260,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Recursive Dynamic Programming function.">
<polygon fill="#bfbfbf" stroke="black" points="0,-27.5 0,-68.5 137,-68.5 137,-27.5 0,-27.5"/>
<text text-anchor="start" x="8" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">dynamic_programming</text>
<text text-anchor="start" x="8" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">::abbreviation::abbreviation</text>
<text text-anchor="middle" x="68.5" y="-34.5" font-family="Helvetica,sans-Serif" font-size="10.00">_recursion</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node1 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node1</title>
<path fill="none" stroke="midnightblue" d="M41.67,-68.86C38.74,-78.54 47.68,-87 68.5,-87 81.51,-87 89.88,-83.7 93.62,-78.86"/>
<polygon fill="midnightblue" stroke="midnightblue" points="97.09,-79.31 95.33,-68.86 90.19,-78.13 97.09,-79.31"/>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="198,-76.5 198,-95.5 231,-95.5 231,-76.5 198,-76.5"/>
<text text-anchor="middle" x="214.5" y="-83.5" font-family="Helvetica,sans-Serif" font-size="10.00">ans</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M137.28,-65.89C155.3,-70.64 173.68,-75.49 187.87,-79.24"/>
<polygon fill="midnightblue" stroke="midnightblue" points="187.27,-82.7 197.83,-81.86 189.05,-75.93 187.27,-82.7"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/at.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="176,-38.5 176,-57.5 253,-57.5 253,-38.5 176,-38.5"/>
<text text-anchor="middle" x="214.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::at</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M137.28,-48C146.93,-48 156.68,-48 165.83,-48"/>
<polygon fill="midnightblue" stroke="midnightblue" points="165.87,-51.5 175.87,-48 165.87,-44.5 165.87,-51.5"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="173,-0.5 173,-19.5 256,-19.5 256,-0.5 173,-0.5"/>
<text text-anchor="middle" x="214.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M137.28,-30.11C147.57,-27.4 157.97,-24.65 167.65,-22.1"/>
<polygon fill="midnightblue" stroke="midnightblue" points="168.65,-25.46 177.43,-19.52 166.86,-18.69 168.65,-25.46"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test Pages: 1 -->
<svg width="160pt" height="28pt"

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1,6 +1,5 @@
<map id="dynamic_programming::abbreviation::abbreviation_recursion" name="dynamic_programming::abbreviation::abbreviation_recursion">
<area shape="rect" id="node1" title="Recursive Dynamic Programming function." alt="" coords="5,41,188,97"/>
<area shape="rect" id="node2" href="$d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" title=" " alt="" coords="269,5,313,32"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/at.html#" title=" " alt="" coords="240,56,343,83"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/size.html#" title=" " alt="" coords="236,107,347,133"/>
<area shape="rect" id="node1" title="Recursive Dynamic Programming function." alt="" coords="5,29,188,85"/>
<area shape="rect" id="node2" href="$d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" title=" " alt="" coords="269,19,313,45"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/size.html#" title=" " alt="" coords="236,69,347,96"/>
</map>

View File

@@ -0,0 +1 @@
1f11bf760dcbea974bba92adca1af7d3

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: dynamic_programming::abbreviation::abbreviation_recursion Pages: 1 -->
<svg width="264pt" height="76pt"
viewBox="0.00 0.00 264.00 76.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 72)">
<title>dynamic_programming::abbreviation::abbreviation_recursion</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-72 260,-72 260,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Recursive Dynamic Programming function.">
<polygon fill="#bfbfbf" stroke="black" points="0,-8.5 0,-49.5 137,-49.5 137,-8.5 0,-8.5"/>
<text text-anchor="start" x="8" y="-37.5" font-family="Helvetica,sans-Serif" font-size="10.00">dynamic_programming</text>
<text text-anchor="start" x="8" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">::abbreviation::abbreviation</text>
<text text-anchor="middle" x="68.5" y="-15.5" font-family="Helvetica,sans-Serif" font-size="10.00">_recursion</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node1 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node1</title>
<path fill="none" stroke="midnightblue" d="M41.67,-49.86C38.74,-59.54 47.68,-68 68.5,-68 81.51,-68 89.88,-64.7 93.62,-59.86"/>
<polygon fill="midnightblue" stroke="midnightblue" points="97.09,-60.31 95.33,-49.86 90.19,-59.13 97.09,-60.31"/>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="198,-38.5 198,-57.5 231,-57.5 231,-38.5 198,-38.5"/>
<text text-anchor="middle" x="214.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">ans</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M137.28,-37.94C155.3,-40.32 173.68,-42.75 187.87,-44.62"/>
<polygon fill="midnightblue" stroke="midnightblue" points="187.46,-48.09 197.83,-45.93 188.37,-41.15 187.46,-48.09"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="173,-0.5 173,-19.5 256,-19.5 256,-0.5 173,-0.5"/>
<text text-anchor="middle" x="214.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M137.28,-20.06C145.8,-18.93 154.39,-17.8 162.58,-16.72"/>
<polygon fill="midnightblue" stroke="midnightblue" points="163.26,-20.16 172.71,-15.38 162.34,-13.22 163.26,-20.16"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="234pt" height="28pt"

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: dynamic_programming::abbreviation::abbreviation Pages: 1 -->
<svg width="270pt" height="66pt"

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: others/postfix_evaluation.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d75/postfix__evaluation_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -94,12 +94,11 @@ $(document).ready(function(){initNavTree('d7/d75/postfix__evaluation_8cpp.html',
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">postfix_evaluation.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">postfix_evaluation.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Evaluation of <a href="https://en.wikipedia.org/wiki/Reverse_Polish_notation">Postfix Expression</a>
<p>Evaluation of <a href="https://en.wikipedia.org/wiki/Reverse_Polish_notation" target="_blank">Postfix Expression</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;algorithm&gt;</code><br />
<code>#include &lt;array&gt;</code><br />
@@ -113,22 +112,22 @@ Include dependency graph for postfix_evaluation.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d8a/classothers_1_1postfix__expression_1_1_stack.html">others::postfix_expression::Stack</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an array to be used as stack for storing values. <a href="../../d5/d8a/classothers_1_1postfix__expression_1_1_stack.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:d0/d6f/namespaceothers"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d6f/namespaceothers.html">others</a></td></tr>
<tr class="memitem:d0/d6f/namespaceothers"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d6f/namespaceothers.html">others</a></td></tr>
<tr class="memdesc:d0/d6f/namespaceothers"><td class="mdescLeft">&#160;</td><td class="mdescRight">for <code>vector</code> <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d4/de6/namespacepostfix__expression"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/de6/namespacepostfix__expression.html">postfix_expression</a></td></tr>
<tr class="memitem:d4/de6/namespacepostfix__expression"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/de6/namespacepostfix__expression.html">postfix_expression</a></td></tr>
<tr class="memdesc:d4/de6/namespacepostfix__expression"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for Postfix Expression algorithm. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ad77f8c9cc594975756838d498c237cea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d75/postfix__evaluation_8cpp.html#ad77f8c9cc594975756838d498c237cea">others::postfix_expression::push</a> (float operand, Stack *<a class="el" href="../../d1/dc2/classstack.html">stack</a>)</td></tr>
<tr class="memdesc:ad77f8c9cc594975756838d498c237cea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pushing operand, also called the number in the array to the stack. <a href="../../d7/d75/postfix__evaluation_8cpp.html#ad77f8c9cc594975756838d498c237cea">More...</a><br /></td></tr>
@@ -142,7 +141,7 @@ Functions</h2></td></tr>
<tr class="memitem:a59fd597e0ea394abe027ced4d2ea3338"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d75/postfix__evaluation_8cpp.html#a59fd597e0ea394abe027ced4d2ea3338">others::postfix_expression::evaluate</a> (float a, float b, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;operation, Stack *<a class="el" href="../../d1/dc2/classstack.html">stack</a>)</td></tr>
<tr class="memdesc:a59fd597e0ea394abe027ced4d2ea3338"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate answer using given last two operands from and operation. <a href="../../d7/d75/postfix__evaluation_8cpp.html#a59fd597e0ea394abe027ced4d2ea3338">More...</a><br /></td></tr>
<tr class="separator:a59fd597e0ea394abe027ced4d2ea3338"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae38bd3a177a6d61da3859a281233bbe1"><td class="memTemplParams" colspan="2">template&lt;std::size_t N&gt; </td></tr>
<tr class="memitem:ae38bd3a177a6d61da3859a281233bbe1"><td class="memTemplParams" colspan="2">template&lt;<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> N&gt; </td></tr>
<tr class="memitem:ae38bd3a177a6d61da3859a281233bbe1"><td class="memTemplItemLeft" align="right" valign="top">float&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d7/d75/postfix__evaluation_8cpp.html#ae38bd3a177a6d61da3859a281233bbe1">others::postfix_expression::postfix_evaluation</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>, N &gt; input)</td></tr>
<tr class="memdesc:ae38bd3a177a6d61da3859a281233bbe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Postfix Evaluation algorithm to compute the value from given input array. <a href="../../d7/d75/postfix__evaluation_8cpp.html#ae38bd3a177a6d61da3859a281233bbe1">More...</a><br /></td></tr>
<tr class="separator:ae38bd3a177a6d61da3859a281233bbe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -157,11 +156,11 @@ Functions</h2></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Evaluation of <a href="https://en.wikipedia.org/wiki/Reverse_Polish_notation">Postfix Expression</a> </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Darshana-Sarma">Darshana Sarma</a></dd></dl>
<div class="textblock"><p >Evaluation of <a href="https://en.wikipedia.org/wiki/Reverse_Polish_notation" target="_blank">Postfix Expression</a> </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Darshana-Sarma" target="_blank">Darshana Sarma</a></dd></dl>
<p>Create a stack to store operands (or values). Scan the given expression and do following for every scanned element. If the element is a number, push it into the stack If the element is a operator, pop operands for the operator from stack. Evaluate the operator and push the result back to the stack When the expression is ended, the number in the stack is the final answer </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a59fd597e0ea394abe027ced4d2ea3338"></a>
<a id="a59fd597e0ea394abe027ced4d2ea3338" name="a59fd597e0ea394abe027ced4d2ea3338"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59fd597e0ea394abe027ced4d2ea3338">&#9670;&nbsp;</a></span>evaluate()</h2>
<div class="memitem">
@@ -210,35 +209,35 @@ Functions</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
<div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">float</span> c = 0;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *op = operation.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/c_str.html">c_str</a>();</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">switch</span> (*op) {</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;+&#39;</span>:</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; c = a + b; <span class="comment">// Addition of numbers</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="../../dc/dc5/paranthesis__matching_8cpp.html#aae41c72130114bf31204cde6873b6095">others::postfix_expression::push</a>(c, <a class="code" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;-&#39;</span>:</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; c = a - b; <span class="comment">// Subtraction of numbers</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="../../dc/dc5/paranthesis__matching_8cpp.html#aae41c72130114bf31204cde6873b6095">others::postfix_expression::push</a>(c, <a class="code" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;*&#39;</span>:</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; c = a * b; <span class="comment">// Multiplication of numbers</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="../../dc/dc5/paranthesis__matching_8cpp.html#aae41c72130114bf31204cde6873b6095">others::postfix_expression::push</a>(c, <a class="code" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;/&#39;</span>:</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; c = a / b; <span class="comment">// Division of numbers</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="../../dc/dc5/paranthesis__matching_8cpp.html#aae41c72130114bf31204cde6873b6095">others::postfix_expression::push</a>(c, <a class="code" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Operator not defined\n&quot;</span>;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> {</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordtype">float</span> c = 0;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *op = operation.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/c_str.html">c_str</a>();</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">switch</span> (*op) {</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">case</span> <span class="charliteral">&#39;+&#39;</span>:</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> c = a + b; <span class="comment">// Addition of numbers</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_function" href="../../dc/dc5/paranthesis__matching_8cpp.html#aae41c72130114bf31204cde6873b6095">others::postfix_expression::push</a>(c, <a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keywordflow">case</span> <span class="charliteral">&#39;-&#39;</span>:</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> c = a - b; <span class="comment">// Subtraction of numbers</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_function" href="../../dc/dc5/paranthesis__matching_8cpp.html#aae41c72130114bf31204cde6873b6095">others::postfix_expression::push</a>(c, <a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">case</span> <span class="charliteral">&#39;*&#39;</span>:</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> c = a * b; <span class="comment">// Multiplication of numbers</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <a class="code hl_function" href="../../dc/dc5/paranthesis__matching_8cpp.html#aae41c72130114bf31204cde6873b6095">others::postfix_expression::push</a>(c, <a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">case</span> <span class="charliteral">&#39;/&#39;</span>:</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> c = a / b; <span class="comment">// Division of numbers</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <a class="code hl_function" href="../../dc/dc5/paranthesis__matching_8cpp.html#aae41c72130114bf31204cde6873b6095">others::postfix_expression::push</a>(c, <a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Operator not defined\n&quot;</span>;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span>}</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="ac_str_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/c_str.html">std::string::c_str</a></div><div class="ttdeci">T c_str(T... args)</div></div>
<div class="ttc" id="aclassstack_html"><div class="ttname"><a href="../../d1/dc2/classstack.html">stack</a></div><div class="ttdef"><b>Definition:</b> stack.h:26</div></div>
@@ -252,7 +251,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a4c27f949c9d6659be9f5bd2ccbe1360a"></a>
<a id="a4c27f949c9d6659be9f5bd2ccbe1360a" name="a4c27f949c9d6659be9f5bd2ccbe1360a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c27f949c9d6659be9f5bd2ccbe1360a">&#9670;&nbsp;</a></span>is_number()</h2>
<div class="memitem">
@@ -276,9 +275,9 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bool boolean value if string is number </dd></dl>
<div class="fragment"><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> !s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>() &amp;&amp; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/all_any_none_of.html">std::all_of</a>(s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/begin.html">begin</a>(), s.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/end.html">end</a>(), ::isdigit);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> {</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> !s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>() &amp;&amp; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/all_any_none_of.html">std::all_of</a>(s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/begin.html">begin</a>(), s.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/end.html">end</a>(), ::isdigit);</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span>}</div>
<div class="ttc" id="aall_any_none_of_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/all_any_none_of.html">std::all_of</a></div><div class="ttdeci">T all_of(T... args)</div></div>
<div class="ttc" id="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/begin.html">std::string::begin</a></div><div class="ttdeci">T begin(T... args)</div></div>
<div class="ttc" id="aempty_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">std::string::empty</a></div><div class="ttdeci">T empty(T... args)</div></div>
@@ -292,7 +291,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -310,14 +309,14 @@ Here is the call graph for this function:</div>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="../../d7/d75/postfix__evaluation_8cpp.html#a6a8eeb7d346d5cd6335d9780fb7c0f15">test_function_1</a>();</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="../../d7/d75/postfix__evaluation_8cpp.html#a5b97d12e8b61484f756a8721992bfae1">test_function_2</a>();</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nTest implementations passed!\n&quot;</span>;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> {</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <a class="code hl_function" href="../../d7/d75/postfix__evaluation_8cpp.html#a6a8eeb7d346d5cd6335d9780fb7c0f15">test_function_1</a>();</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <a class="code hl_function" href="../../d7/d75/postfix__evaluation_8cpp.html#a5b97d12e8b61484f756a8721992bfae1">test_function_2</a>();</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nTest implementations passed!\n&quot;</span>;</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="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span>}</div>
<div class="ttc" id="apostfix__evaluation_8cpp_html_a5b97d12e8b61484f756a8721992bfae1"><div class="ttname"><a href="../../d7/d75/postfix__evaluation_8cpp.html#a5b97d12e8b61484f756a8721992bfae1">test_function_2</a></div><div class="ttdeci">static void test_function_2()</div><div class="ttdoc">Test function 2 with input array {'1', '2', '+', '2', '/', '5', '*', '7', '+'}.</div><div class="ttdef"><b>Definition:</b> postfix_evaluation.cpp:159</div></div>
<div class="ttc" id="apostfix__evaluation_8cpp_html_a6a8eeb7d346d5cd6335d9780fb7c0f15"><div class="ttname"><a href="../../d7/d75/postfix__evaluation_8cpp.html#a6a8eeb7d346d5cd6335d9780fb7c0f15">test_function_1</a></div><div class="ttdeci">static void test_function_1()</div><div class="ttdoc">Test function 1 with input array {'2', '3', '1', '*', '+', '9', '-'}.</div><div class="ttdef"><b>Definition:</b> postfix_evaluation.cpp:146</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -329,7 +328,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a421baa2002a64bc0bfc3e1b64800d734"></a>
<a id="a421baa2002a64bc0bfc3e1b64800d734" name="a421baa2002a64bc0bfc3e1b64800d734"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a421baa2002a64bc0bfc3e1b64800d734">&#9670;&nbsp;</a></span>pop()</h2>
<div class="memitem">
@@ -353,11 +352,11 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>operand float on top of stack </dd></dl>
<div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">float</span> operand = <a class="code" href="../../d1/dc2/classstack.html">stack</a>-&gt;<a class="code" href="../../d1/dc2/classstack.html#a5b64337ec34b12e98458bb9b9d5f8f83">stack</a>[<a class="code" href="../../d1/dc2/classstack.html">stack</a>-&gt;<a class="code" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a>];</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="../../d1/dc2/classstack.html">stack</a>-&gt;<a class="code" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a>--;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> operand;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordtype">float</span> operand = <a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>-&gt;<a class="code hl_function" href="../../d1/dc2/classstack.html#a5b64337ec34b12e98458bb9b9d5f8f83">stack</a>[<a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>-&gt;<a class="code hl_variable" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a>];</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>-&gt;<a class="code hl_variable" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a>--;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">return</span> operand;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span>}</div>
<div class="ttc" id="aclassstack_html_a5b64337ec34b12e98458bb9b9d5f8f83"><div class="ttname"><a href="../../d1/dc2/classstack.html#a5b64337ec34b12e98458bb9b9d5f8f83">stack::stack</a></div><div class="ttdeci">stack()</div><div class="ttdef"><b>Definition:</b> stack.h:41</div></div>
<div class="ttc" id="aclassstack_html_a7289037c059aaad492b4d68e6bd54453"><div class="ttname"><a href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stack::stackTop</a></div><div class="ttdeci">node&lt; Type &gt; * stackTop</div><div class="ttdef"><b>Definition:</b> stack.h:146</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -369,13 +368,13 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae38bd3a177a6d61da3859a281233bbe1"></a>
<a id="ae38bd3a177a6d61da3859a281233bbe1" name="ae38bd3a177a6d61da3859a281233bbe1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae38bd3a177a6d61da3859a281233bbe1">&#9670;&nbsp;</a></span>postfix_evaluation()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;std::size_t N&gt; </div>
template&lt;<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> N&gt; </div>
<table class="memname">
<tr>
<td class="memname">float others::postfix_expression::postfix_evaluation </td>
@@ -401,28 +400,28 @@ template&lt;std::size_t N&gt; </div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>stack[stackTop] returns the top value from the stack </dd></dl>
<div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; Stack <a class="code" href="../../dc/dc5/paranthesis__matching_8cpp.html#aa37d24a036d239b3b528f13b9de880c7">stack</a>;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">int</span> j = 0;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">while</span> (j &lt; N) {</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> scan = input[j];</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../d7/d75/postfix__evaluation_8cpp.html#a4c27f949c9d6659be9f5bd2ccbe1360a">is_number</a>(scan)) {</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="../../dc/dc5/paranthesis__matching_8cpp.html#aae41c72130114bf31204cde6873b6095">push</a>(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/stof.html">std::stof</a>(scan), &amp;<a class="code" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">float</span> op2 = <a class="code" href="../../dc/dc5/paranthesis__matching_8cpp.html#a6d25c7dfbfeb52c3cb9d1b56ab49b664">pop</a>(&amp;<a class="code" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">float</span> op1 = <a class="code" href="../../dc/dc5/paranthesis__matching_8cpp.html#a6d25c7dfbfeb52c3cb9d1b56ab49b664">pop</a>(&amp;<a class="code" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="../../d7/d75/postfix__evaluation_8cpp.html#a59fd597e0ea394abe027ced4d2ea3338">evaluate</a>(op1, op2, scan, &amp;<a class="code" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; j++;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code" href="../../d1/dc2/classstack.html">stack</a>.<a class="code" href="../../d1/dc2/classstack.html#a5b64337ec34b12e98458bb9b9d5f8f83">stack</a>[<a class="code" href="../../d1/dc2/classstack.html">stack</a>.<a class="code" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a>] &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../d1/dc2/classstack.html">stack</a>.<a class="code" href="../../d1/dc2/classstack.html#a5b64337ec34b12e98458bb9b9d5f8f83">stack</a>[<a class="code" href="../../d1/dc2/classstack.html">stack</a>.<a class="code" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a>];</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> {</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> Stack <a class="code hl_variable" href="../../dc/dc5/paranthesis__matching_8cpp.html#aa37d24a036d239b3b528f13b9de880c7">stack</a>;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordtype">int</span> j = 0;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">while</span> (j &lt; N) {</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> scan = input[j];</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="../../d7/d75/postfix__evaluation_8cpp.html#a4c27f949c9d6659be9f5bd2ccbe1360a">is_number</a>(scan)) {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <a class="code hl_function" href="../../dc/dc5/paranthesis__matching_8cpp.html#aae41c72130114bf31204cde6873b6095">push</a>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/stof.html">std::stof</a>(scan), &amp;<a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordtype">float</span> op2 = <a class="code hl_function" href="../../dc/dc5/paranthesis__matching_8cpp.html#a6d25c7dfbfeb52c3cb9d1b56ab49b664">pop</a>(&amp;<a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">float</span> op1 = <a class="code hl_function" href="../../dc/dc5/paranthesis__matching_8cpp.html#a6d25c7dfbfeb52c3cb9d1b56ab49b664">pop</a>(&amp;<a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <a class="code hl_function" href="../../d7/d75/postfix__evaluation_8cpp.html#a59fd597e0ea394abe027ced4d2ea3338">evaluate</a>(op1, op2, scan, &amp;<a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>);</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> }</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> j++;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> }</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>.<a class="code hl_function" href="../../d1/dc2/classstack.html#a5b64337ec34b12e98458bb9b9d5f8f83">stack</a>[<a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>.<a class="code hl_variable" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a>] &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>.<a class="code hl_function" href="../../d1/dc2/classstack.html#a5b64337ec34b12e98458bb9b9d5f8f83">stack</a>[<a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>.<a class="code hl_variable" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a>];</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span>}</div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="aparanthesis__matching_8cpp_html_a6d25c7dfbfeb52c3cb9d1b56ab49b664"><div class="ttname"><a href="../../dc/dc5/paranthesis__matching_8cpp.html#a6d25c7dfbfeb52c3cb9d1b56ab49b664">pop</a></div><div class="ttdeci">char pop()</div><div class="ttdoc">pop a byte out of stack variable</div><div class="ttdef"><b>Definition:</b> paranthesis_matching.cpp:29</div></div>
<div class="ttc" id="aparanthesis__matching_8cpp_html_aa37d24a036d239b3b528f13b9de880c7"><div class="ttname"><a href="../../dc/dc5/paranthesis__matching_8cpp.html#aa37d24a036d239b3b528f13b9de880c7">stack</a></div><div class="ttdeci">char stack[MAX]</div><div class="ttdef"><b>Definition:</b> paranthesis_matching.cpp:20</div></div>
@@ -438,7 +437,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ad77f8c9cc594975756838d498c237cea"></a>
<a id="ad77f8c9cc594975756838d498c237cea" name="ad77f8c9cc594975756838d498c237cea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad77f8c9cc594975756838d498c237cea">&#9670;&nbsp;</a></span>push()</h2>
<div class="memitem">
@@ -473,10 +472,10 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
<div class="fragment"><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="../../d1/dc2/classstack.html">stack</a>-&gt;<a class="code" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a>++;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="../../d1/dc2/classstack.html">stack</a>-&gt;<a class="code" href="../../d1/dc2/classstack.html#a5b64337ec34b12e98458bb9b9d5f8f83">stack</a>[<a class="code" href="../../d1/dc2/classstack.html">stack</a>-&gt;<a class="code" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a>] = operand;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div>
<div class="fragment"><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> <a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>-&gt;<a class="code hl_variable" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a>++;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>-&gt;<a class="code hl_function" href="../../d1/dc2/classstack.html#a5b64337ec34b12e98458bb9b9d5f8f83">stack</a>[<a class="code hl_class" href="../../d1/dc2/classstack.html">stack</a>-&gt;<a class="code hl_variable" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a>] = operand;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -486,7 +485,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a6a8eeb7d346d5cd6335d9780fb7c0f15"></a>
<a id="a6a8eeb7d346d5cd6335d9780fb7c0f15" name="a6a8eeb7d346d5cd6335d9780fb7c0f15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a8eeb7d346d5cd6335d9780fb7c0f15">&#9670;&nbsp;</a></span>test_function_1()</h2>
<div class="memitem">
@@ -511,19 +510,19 @@ Here is the call graph for this function:</div>
<p>Test function 1 with input array {'2', '3', '1', '*', '+', '9', '-'}. </p>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
<div class="fragment"><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::string, 7&gt;</a> input = {<span class="stringliteral">&quot;2&quot;</span>, <span class="stringliteral">&quot;3&quot;</span>, <span class="stringliteral">&quot;1&quot;</span>, <span class="stringliteral">&quot;*&quot;</span>, <span class="stringliteral">&quot;+&quot;</span>, <span class="stringliteral">&quot;9&quot;</span>, <span class="stringliteral">&quot;-&quot;</span>};</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">float</span> answer = <a class="code" href="../../d7/d75/postfix__evaluation_8cpp.html#ae38bd3a177a6d61da3859a281233bbe1">others::postfix_expression::postfix_evaluation</a>(input);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; assert(answer == -4);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> {</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::string, 7&gt;</a> input = {<span class="stringliteral">&quot;2&quot;</span>, <span class="stringliteral">&quot;3&quot;</span>, <span class="stringliteral">&quot;1&quot;</span>, <span class="stringliteral">&quot;*&quot;</span>, <span class="stringliteral">&quot;+&quot;</span>, <span class="stringliteral">&quot;9&quot;</span>, <span class="stringliteral">&quot;-&quot;</span>};</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> <span class="keywordtype">float</span> answer = <a class="code hl_function" href="../../d7/d75/postfix__evaluation_8cpp.html#ae38bd3a177a6d61da3859a281233bbe1">others::postfix_expression::postfix_evaluation</a>(input);</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> assert(answer == -4);</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span>}</div>
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></div></div>
<div class="ttc" id="apostfix__evaluation_8cpp_html_ae38bd3a177a6d61da3859a281233bbe1"><div class="ttname"><a href="../../d7/d75/postfix__evaluation_8cpp.html#ae38bd3a177a6d61da3859a281233bbe1">others::postfix_expression::postfix_evaluation</a></div><div class="ttdeci">float postfix_evaluation(std::array&lt; std::string, N &gt; input)</div><div class="ttdoc">Postfix Evaluation algorithm to compute the value from given input array.</div><div class="ttdef"><b>Definition:</b> postfix_evaluation.cpp:115</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a5b97d12e8b61484f756a8721992bfae1"></a>
<a id="a5b97d12e8b61484f756a8721992bfae1" name="a5b97d12e8b61484f756a8721992bfae1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b97d12e8b61484f756a8721992bfae1">&#9670;&nbsp;</a></span>test_function_2()</h2>
<div class="memitem">
@@ -548,13 +547,13 @@ Here is the call graph for this function:</div>
<p>Test function 2 with input array {'1', '2', '+', '2', '/', '5', '*', '7', '+'}. </p>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
<div class="fragment"><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::string, 9&gt;</a> input = {<span class="stringliteral">&quot;100&quot;</span>, <span class="stringliteral">&quot;200&quot;</span>, <span class="stringliteral">&quot;+&quot;</span>, <span class="stringliteral">&quot;2&quot;</span>, <span class="stringliteral">&quot;/&quot;</span>,</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="stringliteral">&quot;5&quot;</span>, <span class="stringliteral">&quot;*&quot;</span>, <span class="stringliteral">&quot;7&quot;</span>, <span class="stringliteral">&quot;+&quot;</span>};</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">float</span> answer = <a class="code" href="../../d7/d75/postfix__evaluation_8cpp.html#ae38bd3a177a6d61da3859a281233bbe1">others::postfix_expression::postfix_evaluation</a>(input);</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; assert(answer == 757);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> {</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::string, 9&gt;</a> input = {<span class="stringliteral">&quot;100&quot;</span>, <span class="stringliteral">&quot;200&quot;</span>, <span class="stringliteral">&quot;+&quot;</span>, <span class="stringliteral">&quot;2&quot;</span>, <span class="stringliteral">&quot;/&quot;</span>,</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="stringliteral">&quot;5&quot;</span>, <span class="stringliteral">&quot;*&quot;</span>, <span class="stringliteral">&quot;7&quot;</span>, <span class="stringliteral">&quot;+&quot;</span>};</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordtype">float</span> answer = <a class="code hl_function" href="../../d7/d75/postfix__evaluation_8cpp.html#ae38bd3a177a6d61da3859a281233bbe1">others::postfix_expression::postfix_evaluation</a>(input);</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> </div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> assert(answer == 757);</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span>}</div>
</div><!-- fragment -->
</div>
</div>
@@ -564,7 +563,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_9510827d0b234b3cc54b29892f217477.html">others</a></li><li class="navelem"><a class="el" href="../../d7/d75/postfix__evaluation_8cpp.html">postfix_evaluation.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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,6 +1,6 @@
var postfix__evaluation_8cpp =
[
[ "Stack", "d5/d8a/classothers_1_1postfix__expression_1_1_stack.html", "d5/d8a/classothers_1_1postfix__expression_1_1_stack" ],
[ "others::postfix_expression::Stack", "d5/d8a/classothers_1_1postfix__expression_1_1_stack.html", "d5/d8a/classothers_1_1postfix__expression_1_1_stack" ],
[ "evaluate", "d7/d75/postfix__evaluation_8cpp.html#a59fd597e0ea394abe027ced4d2ea3338", null ],
[ "is_number", "d7/d75/postfix__evaluation_8cpp.html#a4c27f949c9d6659be9f5bd2ccbe1360a", null ],
[ "main", "d7/d75/postfix__evaluation_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: others::postfix_expression::pop Pages: 1 -->
<svg width="268pt" height="28pt"

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: others::postfix_expression::is_number Pages: 1 -->
<svg width="270pt" height="142pt"

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: others::postfix_expression::evaluate Pages: 1 -->
<svg width="264pt" height="71pt"

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: others::postfix_expression::push Pages: 1 -->
<svg width="246pt" height="39pt"

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: others::postfix_expression::postfix_evaluation Pages: 1 -->
<svg width="439pt" height="278pt"

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="166pt" height="66pt"

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: std::is_unsigned&lt; uint256_t &gt; Pages: 1 -->
<svg width="155pt" height="84pt"

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Edge Struct Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d77/class_edge.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -94,51 +94,50 @@ $(document).ready(function(){initNavTree('d7/d77/class_edge.html','../../'); ini
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="../../de/db5/class_edge-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Edge Struct Reference</div> </div>
<div class="headertitle"><div class="title">Edge Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa8424b8e14b8a5a19d4b5821db85e9ef"><td class="memItemLeft" align="right" valign="top"><a id="aa8424b8e14b8a5a19d4b5821db85e9ef"></a>
<tr class="memitem:aa8424b8e14b8a5a19d4b5821db85e9ef"><td class="memItemLeft" align="right" valign="top"><a id="aa8424b8e14b8a5a19d4b5821db85e9ef" name="aa8424b8e14b8a5a19d4b5821db85e9ef"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Edge</b> (<a class="el" href="../../d7/d77/class_edge.html">Edge</a> &amp;&amp;)=default</td></tr>
<tr class="separator:aa8424b8e14b8a5a19d4b5821db85e9ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26c0b79bfb231f0994853a25ba703a68"><td class="memItemLeft" align="right" valign="top"><a id="a26c0b79bfb231f0994853a25ba703a68"></a>
<tr class="memitem:a1014b08750074bc04cc63bab21f01236"><td class="memItemLeft" align="right" valign="top"><a id="a1014b08750074bc04cc63bab21f01236" name="a1014b08750074bc04cc63bab21f01236"></a>
<a class="el" href="../../d7/d77/class_edge.html">Edge</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="../../d7/d77/class_edge.html">Edge</a> &amp;&amp;)=default</td></tr>
<tr class="separator:a26c0b79bfb231f0994853a25ba703a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac60e5bfb447fbb47de2e60a5dd05a7ec"><td class="memItemLeft" align="right" valign="top"><a id="ac60e5bfb447fbb47de2e60a5dd05a7ec"></a>
<tr class="separator:a1014b08750074bc04cc63bab21f01236"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac60e5bfb447fbb47de2e60a5dd05a7ec"><td class="memItemLeft" align="right" valign="top"><a id="ac60e5bfb447fbb47de2e60a5dd05a7ec" name="ac60e5bfb447fbb47de2e60a5dd05a7ec"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Edge</b> (<a class="el" href="../../d7/d77/class_edge.html">Edge</a> const &amp;)=default</td></tr>
<tr class="separator:ac60e5bfb447fbb47de2e60a5dd05a7ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a5b6510bcbe63028818f4dc417ba962"><td class="memItemLeft" align="right" valign="top"><a id="a0a5b6510bcbe63028818f4dc417ba962"></a>
<tr class="memitem:aa921f6bb1657d2ba61a21a78b17ecc4b"><td class="memItemLeft" align="right" valign="top"><a id="aa921f6bb1657d2ba61a21a78b17ecc4b" name="aa921f6bb1657d2ba61a21a78b17ecc4b"></a>
<a class="el" href="../../d7/d77/class_edge.html">Edge</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="../../d7/d77/class_edge.html">Edge</a> const &amp;)=default</td></tr>
<tr class="separator:a0a5b6510bcbe63028818f4dc417ba962"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:aa921f6bb1657d2ba61a21a78b17ecc4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a415a5d002fe11c58711e48aabe975980"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d77/class_edge.html#a415a5d002fe11c58711e48aabe975980">Edge</a> (unsigned int source, unsigned int destination)</td></tr>
<tr class="separator:a415a5d002fe11c58711e48aabe975980"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a9a415f211c059647d1b3af8fcf7a0e30"><td class="memItemLeft" align="right" valign="top"><a id="a9a415f211c059647d1b3af8fcf7a0e30"></a>
<tr class="memitem:a9a415f211c059647d1b3af8fcf7a0e30"><td class="memItemLeft" align="right" valign="top"><a id="a9a415f211c059647d1b3af8fcf7a0e30" name="a9a415f211c059647d1b3af8fcf7a0e30"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>src</b></td></tr>
<tr class="separator:a9a415f211c059647d1b3af8fcf7a0e30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2449478938136b5ab7ef0e7d92e6990b"><td class="memItemLeft" align="right" valign="top"><a id="a2449478938136b5ab7ef0e7d92e6990b"></a>
<tr class="memitem:a2449478938136b5ab7ef0e7d92e6990b"><td class="memItemLeft" align="right" valign="top"><a id="a2449478938136b5ab7ef0e7d92e6990b" name="a2449478938136b5ab7ef0e7d92e6990b"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>dst</b></td></tr>
<tr class="separator:a2449478938136b5ab7ef0e7d92e6990b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d58e1f4de38fa55549497175981ebab"><td class="memItemLeft" align="right" valign="top"><a id="a4d58e1f4de38fa55549497175981ebab"></a>
<tr class="memitem:a4d58e1f4de38fa55549497175981ebab"><td class="memItemLeft" align="right" valign="top"><a id="a4d58e1f4de38fa55549497175981ebab" name="a4d58e1f4de38fa55549497175981ebab"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>weight</b></td></tr>
<tr class="separator:a4d58e1f4de38fa55549497175981ebab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadbbb85298a21ecc2c17eeeadea65b01"><td class="memItemLeft" align="right" valign="top"><a id="aadbbb85298a21ecc2c17eeeadea65b01"></a>
<tr class="memitem:aadbbb85298a21ecc2c17eeeadea65b01"><td class="memItemLeft" align="right" valign="top"><a id="aadbbb85298a21ecc2c17eeeadea65b01" name="aadbbb85298a21ecc2c17eeeadea65b01"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>src</b></td></tr>
<tr class="separator:aadbbb85298a21ecc2c17eeeadea65b01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae017097dd21663a9dc3387c23789c92e"><td class="memItemLeft" align="right" valign="top"><a id="ae017097dd21663a9dc3387c23789c92e"></a>
<tr class="memitem:ae017097dd21663a9dc3387c23789c92e"><td class="memItemLeft" align="right" valign="top"><a id="ae017097dd21663a9dc3387c23789c92e" name="ae017097dd21663a9dc3387c23789c92e"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>dest</b></td></tr>
<tr class="separator:ae017097dd21663a9dc3387c23789c92e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of non-weighted directed edge of a graph.</p>
<p>The source vertex of the edge is labelled "src" and destination vertex is labelled "dest". </p>
<div class="textblock"><p >Implementation of non-weighted directed edge of a graph.</p>
<p >The source vertex of the edge is labelled "src" and destination vertex is labelled "dest". </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a415a5d002fe11c58711e48aabe975980"></a>
<a id="a415a5d002fe11c58711e48aabe975980" name="a415a5d002fe11c58711e48aabe975980"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a415a5d002fe11c58711e48aabe975980">&#9670;&nbsp;</a></span>Edge()</h2>
<div class="memitem">
@@ -171,7 +170,7 @@ unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>dest</b></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the source and destination of the vertex.</p>
<p >Set the source and destination of the vertex.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>is the source vertex of the edge. </td></tr>
@@ -179,7 +178,7 @@ unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>dest</b></td>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; : src(source), dest(destination) {}</div>
<div class="fragment"><div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> : src(source), dest(destination) {}</div>
</div><!-- fragment -->
</div>
</div>
@@ -193,7 +192,7 @@ unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>dest</b></td>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d7/d77/class_edge.html">Edge</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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,15 +1,4 @@
var class_edge =
[
[ "Edge", "d7/d77/class_edge.html#a0bc08bf5da251d66412a7dc3e50c6605", null ],
[ "~Edge", "d7/d77/class_edge.html#a4c8114f37c7eb3095557048ad42d3cd5", null ],
[ "Edge", "d7/d77/class_edge.html#aa8424b8e14b8a5a19d4b5821db85e9ef", null ],
[ "Edge", "d7/d77/class_edge.html#ac60e5bfb447fbb47de2e60a5dd05a7ec", null ],
[ "Edge", "d7/d77/class_edge.html#a415a5d002fe11c58711e48aabe975980", null ],
[ "operator=", "d7/d77/class_edge.html#a26c0b79bfb231f0994853a25ba703a68", null ],
[ "operator=", "d7/d77/class_edge.html#a0a5b6510bcbe63028818f4dc417ba962", null ],
[ "dest", "d7/d77/class_edge.html#ae017097dd21663a9dc3387c23789c92e", null ],
[ "dst", "d7/d77/class_edge.html#a2449478938136b5ab7ef0e7d92e6990b", null ],
[ "src", "d7/d77/class_edge.html#a9a415f211c059647d1b3af8fcf7a0e30", null ],
[ "src", "d7/d77/class_edge.html#aadbbb85298a21ecc2c17eeeadea65b01", null ],
[ "weight", "d7/d77/class_edge.html#a4d58e1f4de38fa55549497175981ebab", null ]
[ "Edge", "d7/d77/class_edge.html#a415a5d002fe11c58711e48aabe975980", null ]
];

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: binomial Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d7a/namespacebinomial.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,22 +90,21 @@ $(document).ready(function(){initNavTree('d7/d7a/namespacebinomial.html','../../
</div>
<div class="header">
<div class="headertitle">
<div class="title">binomial Namespace Reference</div> </div>
<div class="headertitle"><div class="title">binomial Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Functions for <a href="https://en.wikipedia.org/wiki/Binomial_coefficient">Binomial coefficients</a> implementation.
<p>Functions for <a href="https://en.wikipedia.org/wiki/Binomial_coefficient" target="_blank">Binomial coefficients</a> implementation.
<a href="../../d7/d7a/namespacebinomial.html#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Functions for <a href="https://en.wikipedia.org/wiki/Binomial_coefficient">Binomial coefficients</a> implementation. </p>
<div class="textblock"><p >Functions for <a href="https://en.wikipedia.org/wiki/Binomial_coefficient" target="_blank">Binomial coefficients</a> implementation. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d7/d7a/namespacebinomial.html">binomial</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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: statistics::stats_computer1&lt; T &gt; Class Template Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d7c/classstatistics_1_1stats__computer1.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -95,18 +95,11 @@ $(document).ready(function(){initNavTree('d7/d7c/classstatistics_1_1stats__compu
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="../../d0/d78/classstatistics_1_1stats__computer1-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">statistics::stats_computer1&lt; T &gt; Class Template Reference</div> </div>
<div class="headertitle"><div class="title">statistics::stats_computer1&lt; T &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for statistics::stats_computer1&lt; T &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d6/d38/classstatistics_1_1stats__computer1__coll__graph.svg" width="220" height="127"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="../../graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa13bf7c38de112f71921a5525d71a2f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d7c/classstatistics_1_1stats__computer1.html#aa13bf7c38de112f71921a5525d71a2f2">new_val</a> (T x)</td></tr>
<tr class="separator:aa13bf7c38de112f71921a5525d71a2f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -117,33 +110,31 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:af57e942d49f4fd70f059f224b4ac07e1"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d7c/classstatistics_1_1stats__computer1.html#af57e942d49f4fd70f059f224b4ac07e1">std</a> () const</td></tr>
<tr class="separator:af57e942d49f4fd70f059f224b4ac07e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:ab2e69e75fe0da096bf61fa13420b43eb"><td class="memItemLeft" align="right" valign="top"><a id="ab2e69e75fe0da096bf61fa13420b43eb"></a>
<tr class="memitem:ab2e69e75fe0da096bf61fa13420b43eb"><td class="memItemLeft" align="right" valign="top"><a id="ab2e69e75fe0da096bf61fa13420b43eb" name="ab2e69e75fe0da096bf61fa13420b43eb"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>n</b> = 0</td></tr>
<tr class="separator:ab2e69e75fe0da096bf61fa13420b43eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a097b80909181880f13b54a264ed337"><td class="memItemLeft" align="right" valign="top"><a id="a2a097b80909181880f13b54a264ed337"></a>
<tr class="memitem:a2a097b80909181880f13b54a264ed337"><td class="memItemLeft" align="right" valign="top"><a id="a2a097b80909181880f13b54a264ed337" name="a2a097b80909181880f13b54a264ed337"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>Ex</b></td></tr>
<tr class="separator:a2a097b80909181880f13b54a264ed337"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ab2b14d5650b14e46b70b412573f60a"><td class="memItemLeft" align="right" valign="top"><a id="a8ab2b14d5650b14e46b70b412573f60a"></a>
<tr class="memitem:a8ab2b14d5650b14e46b70b412573f60a"><td class="memItemLeft" align="right" valign="top"><a id="a8ab2b14d5650b14e46b70b412573f60a" name="a8ab2b14d5650b14e46b70b412573f60a"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>Ex2</b></td></tr>
<tr class="separator:a8ab2b14d5650b14e46b70b412573f60a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48c03a44c784eb6913ad186d34c302db"><td class="memItemLeft" align="right" valign="top"><a id="a48c03a44c784eb6913ad186d34c302db"></a>
<tr class="memitem:a48c03a44c784eb6913ad186d34c302db"><td class="memItemLeft" align="right" valign="top"><a id="a48c03a44c784eb6913ad186d34c302db" name="a48c03a44c784eb6913ad186d34c302db"></a>
T&#160;</td><td class="memItemRight" valign="bottom"><b>K</b></td></tr>
<tr class="separator:a48c03a44c784eb6913ad186d34c302db"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ab5b4bfecdf391cae7edb1fe98548b846"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::istream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d7c/classstatistics_1_1stats__computer1.html#ab5b4bfecdf391cae7edb1fe98548b846">operator&gt;&gt;</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::istream</a> &amp;input, <a class="el" href="../../d7/d7c/classstatistics_1_1stats__computer1.html">stats_computer1</a> &amp;stat)</td></tr>
<tr class="separator:ab5b4bfecdf391cae7edb1fe98548b846"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a350bf6c429691d3578c4dfc6679a0797"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::istream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d7c/classstatistics_1_1stats__computer1.html#a350bf6c429691d3578c4dfc6679a0797">operator&gt;&gt;</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::istream</a> &amp;input, <a class="el" href="../../d7/d7c/classstatistics_1_1stats__computer1.html">stats_computer1</a> &amp;stat)</td></tr>
<tr class="separator:a350bf6c429691d3578c4dfc6679a0797"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T&gt;<br />
class statistics::stats_computer1&lt; T &gt;</h3>
<p>continuous mean and variance computance using first value as an approximation for the mean. If the first number is much far form the mean, the algorithm becomes very inaccurate to compute variance and standard deviation. </p>
<div class="textblock"><div class="compoundTemplParams">template&lt;typename T&gt;<br />
class statistics::stats_computer1&lt; T &gt;</div><p >continuous mean and variance computance using first value as an approximation for the mean. If the first number is much far form the mean, the algorithm becomes very inaccurate to compute variance and standard deviation. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a390697dcee210b91823ceff04b25081b"></a>
<a id="a390697dcee210b91823ceff04b25081b" name="a390697dcee210b91823ceff04b25081b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a390697dcee210b91823ceff04b25081b">&#9670;&nbsp;</a></span>mean()</h2>
<div class="memitem">
@@ -167,12 +158,12 @@ template&lt;typename T &gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>return sample mean computed till last sample </p>
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{ <span class="keywordflow">return</span> K + Ex / n; }</div>
<p >return sample mean computed till last sample </p>
<div class="fragment"><div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span>{ <span class="keywordflow">return</span> K + Ex / n; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa13bf7c38de112f71921a5525d71a2f2"></a>
<a id="aa13bf7c38de112f71921a5525d71a2f2" name="aa13bf7c38de112f71921a5525d71a2f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa13bf7c38de112f71921a5525d71a2f2">&#9670;&nbsp;</a></span>new_val()</h2>
<div class="memitem">
@@ -197,24 +188,24 @@ template&lt;typename T &gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor </p><dl class="params"><dt>Parameters</dt><dd>
<p >Constructor </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>new data sample </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span> (n == 0)</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; K = x;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; n++;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; T tmp = x - K;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; Ex += tmp;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; Ex2 += <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(tmp) * tmp;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">if</span> (n == 0)</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> K = x;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> n++;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> T tmp = x - K;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> Ex += tmp;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> Ex2 += <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(tmp) * tmp;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="af57e942d49f4fd70f059f224b4ac07e1"></a>
<a id="af57e942d49f4fd70f059f224b4ac07e1" name="af57e942d49f4fd70f059f224b4ac07e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af57e942d49f4fd70f059f224b4ac07e1">&#9670;&nbsp;</a></span>std()</h2>
<div class="memitem">
@@ -238,8 +229,8 @@ template&lt;typename T &gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>return sample standard deviation computed till last sample </p>
<div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{ <span class="keywordflow">return</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a>(this-&gt;<a class="code" href="../../d7/d7c/classstatistics_1_1stats__computer1.html#a27f0a03e2fd2254f1c81fe668226bd92">variance</a>()); }</div>
<p >return sample standard deviation computed till last sample </p>
<div class="fragment"><div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>{ <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a>(this-&gt;<a class="code hl_function" href="../../d7/d7c/classstatistics_1_1stats__computer1.html#a27f0a03e2fd2254f1c81fe668226bd92">variance</a>()); }</div>
<div class="ttc" id="aclassstatistics_1_1stats__computer1_html_a27f0a03e2fd2254f1c81fe668226bd92"><div class="ttname"><a href="../../d7/d7c/classstatistics_1_1stats__computer1.html#a27f0a03e2fd2254f1c81fe668226bd92">statistics::stats_computer1::variance</a></div><div class="ttdeci">double variance() const</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:45</div></div>
<div class="ttc" id="asqrt_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a></div><div class="ttdeci">T sqrt(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -251,7 +242,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a27f0a03e2fd2254f1c81fe668226bd92"></a>
<a id="a27f0a03e2fd2254f1c81fe668226bd92" name="a27f0a03e2fd2254f1c81fe668226bd92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a27f0a03e2fd2254f1c81fe668226bd92">&#9670;&nbsp;</a></span>variance()</h2>
<div class="memitem">
@@ -275,14 +266,14 @@ template&lt;typename T &gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>return data variance computed till last sample </p>
<div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{ <span class="keywordflow">return</span> (Ex2 - (Ex * Ex) / n) / (n - 1); }</div>
<p >return data variance computed till last sample </p>
<div class="fragment"><div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span>{ <span class="keywordflow">return</span> (Ex2 - (Ex * Ex) / n) / (n - 1); }</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="ab5b4bfecdf391cae7edb1fe98548b846"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5b4bfecdf391cae7edb1fe98548b846">&#9670;&nbsp;</a></span>operator&gt;&gt;</h2>
<a id="a350bf6c429691d3578c4dfc6679a0797" name="a350bf6c429691d3578c4dfc6679a0797"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a350bf6c429691d3578c4dfc6679a0797">&#9670;&nbsp;</a></span>operator&gt;&gt;</h2>
<div class="memitem">
<div class="memproto">
@@ -293,7 +284,7 @@ template&lt;typename T &gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::istream</a>&amp; operator&gt;&gt; </td>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::istream</a> &amp; operator&gt;&gt; </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::istream</a> &amp;&#160;</td>
<td class="paramname"><em>input</em>, </td>
@@ -316,14 +307,14 @@ template&lt;typename T &gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>short-hand operator to read new sample from input stream <br />
<p >short-hand operator to read new sample from input stream <br />
e.g.: <code><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; stats1;</code> </p>
<div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; T val;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; input &gt;&gt; val;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; stat.<a class="code" href="../../d7/d7c/classstatistics_1_1stats__computer1.html#aa13bf7c38de112f71921a5525d71a2f2">new_val</a>(val);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> input;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> T val;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> input &gt;&gt; val;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> stat.<a class="code hl_function" href="../../d7/d7c/classstatistics_1_1stats__computer1.html#aa13bf7c38de112f71921a5525d71a2f2">new_val</a>(val);</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">return</span> input;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }</div>
<div class="ttc" id="aclassstatistics_1_1stats__computer1_html_aa13bf7c38de112f71921a5525d71a2f2"><div class="ttname"><a href="../../d7/d7c/classstatistics_1_1stats__computer1.html#aa13bf7c38de112f71921a5525d71a2f2">statistics::stats_computer1::new_val</a></div><div class="ttdeci">void new_val(T x)</div><div class="ttdef"><b>Definition:</b> realtime_stats.cpp:32</div></div>
</div><!-- fragment -->
</div>
@@ -337,7 +328,7 @@ template&lt;typename T &gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d2/dcf/namespacestatistics.html">statistics</a></li><li class="navelem"><a class="el" href="../../d7/d7c/classstatistics_1_1stats__computer1.html">stats_computer1</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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -4,9 +4,5 @@ var classstatistics_1_1stats__computer1 =
[ "new_val", "d7/d7c/classstatistics_1_1stats__computer1.html#aa13bf7c38de112f71921a5525d71a2f2", null ],
[ "std", "d7/d7c/classstatistics_1_1stats__computer1.html#af57e942d49f4fd70f059f224b4ac07e1", null ],
[ "variance", "d7/d7c/classstatistics_1_1stats__computer1.html#a27f0a03e2fd2254f1c81fe668226bd92", null ],
[ "operator>>", "d7/d7c/classstatistics_1_1stats__computer1.html#ab5b4bfecdf391cae7edb1fe98548b846", null ],
[ "Ex", "d7/d7c/classstatistics_1_1stats__computer1.html#a2a097b80909181880f13b54a264ed337", null ],
[ "Ex2", "d7/d7c/classstatistics_1_1stats__computer1.html#a8ab2b14d5650b14e46b70b412573f60a", null ],
[ "K", "d7/d7c/classstatistics_1_1stats__computer1.html#a48c03a44c784eb6913ad186d34c302db", null ],
[ "n", "d7/d7c/classstatistics_1_1stats__computer1.html#ab2e69e75fe0da096bf61fa13420b43eb", null ]
[ "operator>>", "d7/d7c/classstatistics_1_1stats__computer1.html#a350bf6c429691d3578c4dfc6679a0797", null ]
];

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: statistics::stats_computer1::std Pages: 1 -->
<svg width="331pt" height="78pt"

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Prime factorization</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d7f/section.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -89,23 +89,22 @@ $(document).ready(function(){initNavTree('d7/d7f/section.html','../../'); initRe
</iframe>
</div>
<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">Prime factorization </div> </div>
<div><div class="header">
<div class="headertitle"><div class="title">Prime factorization </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a class="anchor" id="md_math_README"></a>Prime Factorization is a very important and useful technique to factorize any number into its prime factors. It has various applications in the field of number theory.</p>
<p>The method of prime factorization involves two function calls. First: Calculating all the prime number up till a certain range using the standard Sieve of Eratosthenes.</p>
<p>Second: Using the prime numbers to reduce the the given number and thus find all its prime factors.</p>
<p>The complexity of the solution involves approx. O(n logn) in calculating sieve of eratosthenes O(log n) in calculating the prime factors of the number. So in total approx. O(n logn).</p>
<p><b>Requirements: For compile you need the compiler flag for C++ 11</b> </p>
<div class="textblock"><p ><a class="anchor" id="md_math_README"></a>Prime Factorization is a very important and useful technique to factorize any number into its prime factors. It has various applications in the field of number theory.</p>
<p >The method of prime factorization involves two function calls. First: Calculating all the prime number up till a certain range using the standard Sieve of Eratosthenes.</p>
<p >Second: Using the prime numbers to reduce the the given number and thus find all its prime factors.</p>
<p >The complexity of the solution involves approx. O(n logn) in calculating sieve of eratosthenes O(log n) in calculating the prime factors of the number. So in total approx. O(n logn).</p>
<p ><b>Requirements: For compile you need the compiler flag for C++ 11</b> </p>
</div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: bit_manipulation Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d81/namespacebit__manipulation.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,30 +90,29 @@ $(document).ready(function(){initNavTree('d7/d81/namespacebit__manipulation.html
</div>
<div class="header">
<div class="headertitle">
<div class="title">bit_manipulation Namespace Reference</div> </div>
<div class="headertitle"><div class="title">bit_manipulation Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>
<a href="../../d7/d81/namespacebit__manipulation.html#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> </p>
<p>for io operations</p>
<p>for IO operations</p>
<p>for assert for io operations</p>
<p>Bit manipulation algorithms</p>
<p>for assert</p>
<p>Bit manipulation algorithms</p>
<p>for assert</p>
<p>Bit Manipulation algorithms </p>
<div class="textblock"><p >for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> </p>
<p >for io operations</p>
<p >for IO operations</p>
<p >for assert for io operations</p>
<p >Bit manipulation algorithms</p>
<p >for assert</p>
<p >Bit manipulation algorithms</p>
<p >for assert</p>
<p >Bit Manipulation algorithms </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d7/d81/namespacebit__manipulation.html">bit_manipulation</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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: data_structures/trie_tree.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d83/trie__tree_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -94,12 +94,11 @@ $(document).ready(function(){initNavTree('d7/d83/trie__tree_8cpp.html','../../')
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">trie_tree.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">trie_tree.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Implementation of <a href="https://en.wikipedia.org/wiki/Trie">Trie</a> data structure for English alphabets in small characters.
<p>Implementation of <a href="https://en.wikipedia.org/wiki/Trie" target="_blank">Trie</a> data structure for English alphabets in small characters.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;array&gt;</code><br />
<code>#include &lt;cassert&gt;</code><br />
@@ -114,19 +113,19 @@ Include dependency graph for trie_tree.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d3e/classdata__structures_1_1trie.html">data_structures::trie</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a href="https://en.wikipedia.org/wiki/Trie">Trie</a> implementation for small-case English alphabets <code>a-z</code> <a href="../../d0/d3e/classdata__structures_1_1trie.html#details">More...</a><br /></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a href="https://en.wikipedia.org/wiki/Trie" target="_blank">Trie</a> implementation for small-case English alphabets <code>a-z</code> <a href="../../d0/d3e/classdata__structures_1_1trie.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:d5/d3c/namespacedata__structures"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3c/namespacedata__structures.html">data_structures</a></td></tr>
<tr class="memitem:d5/d3c/namespacedata__structures"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3c/namespacedata__structures.html">data_structures</a></td></tr>
<tr class="memdesc:d5/d3c/namespacedata__structures"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data Structures algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d83/trie__tree_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Testing function. <a href="../../d7/d83/trie__tree_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">More...</a><br /></td></tr>
@@ -136,14 +135,14 @@ Functions</h2></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of <a href="https://en.wikipedia.org/wiki/Trie">Trie</a> data structure for English alphabets in small characters. </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Arctic2333">@Arctic2333</a> </dd>
<div class="textblock"><p >Implementation of <a href="https://en.wikipedia.org/wiki/Trie" target="_blank">Trie</a> data structure for English alphabets in small characters. </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Arctic2333" target="_blank">@Arctic2333</a> </dd>
<dd>
<a href="https://github.com/kvedala">Krishna Vedala</a> </dd></dl>
<a href="https://github.com/kvedala" target="_blank">Krishna Vedala</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>the function ::data_structure::trie::deleteString might be erroneous </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../dc/d93/trie__modern_8cpp.html" title="A basic implementation of trie class to store only lower-case strings.">trie_modern.cpp</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -161,11 +160,11 @@ Functions</h2></td></tr>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="../../d7/d83/trie__tree_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>();</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> {</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <a class="code hl_function" href="../../d7/d83/trie__tree_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>();</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span>}</div>
<div class="ttc" id="atrie__tree_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d7/d83/trie__tree_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Testing function.</div><div class="ttdef"><b>Definition:</b> trie_tree.cpp:178</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -176,7 +175,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -201,31 +200,30 @@ Here is the call graph for this function:</div>
<p>Testing function. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="../../d0/d3e/classdata__structures_1_1trie.html">data_structures::trie</a> root;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; root.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/insert.html">insert</a>(<span class="stringliteral">&quot;Hello&quot;</span>);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; root.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/insert.html">insert</a>(<span class="stringliteral">&quot;World&quot;</span>);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; assert(!root.search(<span class="stringliteral">&quot;hello&quot;</span>, 0));</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;hello - &quot;</span> &lt;&lt; root.search(<span class="stringliteral">&quot;hello&quot;</span>, 0) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; assert(root.search(<span class="stringliteral">&quot;Hello&quot;</span>, 0));</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Hello - &quot;</span> &lt;&lt; root.search(<span class="stringliteral">&quot;Hello&quot;</span>, 0) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; assert(!root.search(<span class="stringliteral">&quot;Word&quot;</span>, 0));</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Word - &quot;</span> &lt;&lt; root.search(<span class="stringliteral">&quot;Word&quot;</span>, 0) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; </div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; assert(root.search(<span class="stringliteral">&quot;World&quot;</span>, 0));</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;World - &quot;</span> &lt;&lt; root.search(<span class="stringliteral">&quot;World&quot;</span>, 0) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">// Following lines of code give erroneous output</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// root.deleteString(&quot;hello&quot;, 0);</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// assert(!root.search(&quot;hello&quot;, 0));</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// std::cout &lt;&lt; &quot;hello - &quot; &lt;&lt; root.search(&quot;world&quot;, 0) &lt;&lt; &quot;\n&quot;;</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> {</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <a class="code hl_class" href="../../d0/d3e/classdata__structures_1_1trie.html">data_structures::trie</a> root;</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> root.insert(<span class="stringliteral">&quot;Hello&quot;</span>);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> root.insert(<span class="stringliteral">&quot;World&quot;</span>);</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> assert(!root.search(<span class="stringliteral">&quot;hello&quot;</span>, 0));</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;hello - &quot;</span> &lt;&lt; root.search(<span class="stringliteral">&quot;hello&quot;</span>, 0) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> </div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> assert(root.search(<span class="stringliteral">&quot;Hello&quot;</span>, 0));</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Hello - &quot;</span> &lt;&lt; root.search(<span class="stringliteral">&quot;Hello&quot;</span>, 0) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> assert(!root.search(<span class="stringliteral">&quot;Word&quot;</span>, 0));</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Word - &quot;</span> &lt;&lt; root.search(<span class="stringliteral">&quot;Word&quot;</span>, 0) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> assert(root.search(<span class="stringliteral">&quot;World&quot;</span>, 0));</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;World - &quot;</span> &lt;&lt; root.search(<span class="stringliteral">&quot;World&quot;</span>, 0) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="comment">// Following lines of code give erroneous output</span></div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="comment">// root.deleteString(&quot;hello&quot;, 0);</span></div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// assert(!root.search(&quot;hello&quot;, 0));</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// std::cout &lt;&lt; &quot;hello - &quot; &lt;&lt; root.search(&quot;world&quot;, 0) &lt;&lt; &quot;\n&quot;;</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span>}</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="aclassdata__structures_1_1trie_html"><div class="ttname"><a href="../../d0/d3e/classdata__structures_1_1trie.html">data_structures::trie</a></div><div class="ttdoc">Trie implementation for small-case English alphabets a-z</div><div class="ttdef"><b>Definition:</b> trie_tree.cpp:25</div></div>
<div class="ttc" id="ainsert_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/insert.html">std::vector::insert</a></div><div class="ttdeci">T insert(T... args)</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -235,7 +233,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_2e746e9d06bf2d8ff842208bcc6ebcfc.html">data_structures</a></li><li class="navelem"><a class="el" href="../../d7/d83/trie__tree_8cpp.html">trie_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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,6 +1,6 @@
var trie__tree_8cpp =
[
[ "trie", "d0/d3e/classdata__structures_1_1trie.html", "d0/d3e/classdata__structures_1_1trie" ],
[ "data_structures::trie", "d0/d3e/classdata__structures_1_1trie.html", "d0/d3e/classdata__structures_1_1trie" ],
[ "main", "d7/d83/trie__tree_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
[ "test", "d7/d83/trie__tree_8cpp.html#aa8dca7b867074164d5f45b0f3851269d", null ]
];

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="115pt" height="28pt"

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: math/double_factorial.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d7/d89/double__factorial_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -92,12 +92,11 @@ $(document).ready(function(){initNavTree('d7/d89/double__factorial_8cpp.html','.
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">double_factorial.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">double_factorial.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Compute <a href="https://en.wikipedia.org/wiki/Double_factorial">double factorial</a>: \(n!!\).
<p>Compute <a href="https://en.wikipedia.org/wiki/Double_factorial" target="_blank">double factorial</a>: \(n!!\).
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
@@ -108,7 +107,7 @@ Include dependency graph for double_factorial.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0a3c417360400093891a9ccddaa4be26"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d89/double__factorial_8cpp.html#a0a3c417360400093891a9ccddaa4be26">double_factorial_iterative</a> (uint64_t n)</td></tr>
<tr class="separator:a0a3c417360400093891a9ccddaa4be26"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -122,11 +121,11 @@ Functions</h2></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Compute <a href="https://en.wikipedia.org/wiki/Double_factorial">double factorial</a>: \(n!!\). </p>
<p>Double factorial of a non-negative integer <code>n</code>, is defined as the product of all the integers from 1 to n that have the same parity (odd or even) as n. <br />
<div class="textblock"><p >Compute <a href="https://en.wikipedia.org/wiki/Double_factorial" target="_blank">double factorial</a>: \(n!!\). </p>
<p >Double factorial of a non-negative integer <code>n</code>, is defined as the product of all the integers from 1 to n that have the same parity (odd or even) as n. <br />
It is also called as semifactorial of a number and is denoted by \(n!!\) </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a0a3c417360400093891a9ccddaa4be26"></a>
<a id="a0a3c417360400093891a9ccddaa4be26" name="a0a3c417360400093891a9ccddaa4be26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a3c417360400093891a9ccddaa4be26">&#9670;&nbsp;</a></span>double_factorial_iterative()</h2>
<div class="memitem">
@@ -141,20 +140,20 @@ It is also called as semifactorial of a number and is denoted by \(n!!\) </p>
</tr>
</table>
</div><div class="memdoc">
<p>Compute double factorial using iterative method </p>
<div class="fragment"><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; {</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; uint64_t res = 1;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordflow">for</span> (uint64_t i = n;; i -= 2) {</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">if</span> (i == 0 || i == 1)</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">return</span> res;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; res *= i;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; }</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">return</span> res;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;}</div>
<p >Compute double factorial using iterative method </p>
<div class="fragment"><div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> {</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> uint64_t res = 1;</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordflow">for</span> (uint64_t i = n;; i -= 2) {</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">if</span> (i == 0 || i == 1)</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> res *= i;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> }</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a68ba20fed2ce427f6469c7689437829d"></a>
<a id="a68ba20fed2ce427f6469c7689437829d" name="a68ba20fed2ce427f6469c7689437829d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68ba20fed2ce427f6469c7689437829d">&#9670;&nbsp;</a></span>double_factorial_recursive()</h2>
<div class="memitem">
@@ -169,18 +168,24 @@ It is also called as semifactorial of a number and is denoted by \(n!!\) </p>
</tr>
</table>
</div><div class="memdoc">
<p>Compute double factorial using resursive method. <br />
<p >Compute double factorial using resursive method. <br />
Recursion can be costly for large numbers. </p>
<div class="fragment"><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; {</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">if</span> (n &lt;= 1)</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">return</span> 1;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">return</span> n * <a class="code" href="../../d7/d89/double__factorial_8cpp.html#a68ba20fed2ce427f6469c7689437829d">double_factorial_recursive</a>(n - 2);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">if</span> (n &lt;= 1)</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">return</span> 1;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> n * <a class="code hl_function" href="../../d7/d89/double__factorial_8cpp.html#a68ba20fed2ce427f6469c7689437829d">double_factorial_recursive</a>(n - 2);</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>}</div>
<div class="ttc" id="adouble__factorial_8cpp_html_a68ba20fed2ce427f6469c7689437829d"><div class="ttname"><a href="../../d7/d89/double__factorial_8cpp.html#a68ba20fed2ce427f6469c7689437829d">double_factorial_recursive</a></div><div class="ttdeci">uint64_t double_factorial_recursive(uint64_t n)</div><div class="ttdef"><b>Definition:</b> double_factorial.cpp:30</div></div>
</div><!-- fragment -->
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d89/double__factorial_8cpp_a68ba20fed2ce427f6469c7689437829d_cgraph.svg" width="188" height="62"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -195,22 +200,22 @@ Recursion can be costly for large numbers. </p>
</tr>
</table>
</div><div class="memdoc">
<p>Main function </p>
<div class="fragment"><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="../../d7/d89/double__factorial_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a>();</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div>
<p >Main function </p>
<div class="fragment"><div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_function" href="../../d7/d89/double__factorial_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a>();</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span>}</div>
<div class="ttc" id="adouble__factorial_8cpp_html_a88ec9ad42717780d6caaff9d3d6977f9"><div class="ttname"><a href="../../d7/d89/double__factorial_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a></div><div class="ttdeci">void tests()</div><div class="ttdef"><b>Definition:</b> double_factorial.cpp:50</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d89/double__factorial_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="478" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d89/double__factorial_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="478" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="abbbcebf3a2d0c67f4c3cfb5511a97981"></a>
<a id="abbbcebf3a2d0c67f4c3cfb5511a97981" name="abbbcebf3a2d0c67f4c3cfb5511a97981"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abbbcebf3a2d0c67f4c3cfb5511a97981">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -235,28 +240,28 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Wrapper to run tests using both recursive and iterative implementations. The checks are only valid in debug builds due to the use of <code>assert()</code> statements. </p><dl class="params"><dt>Parameters</dt><dd>
<p >Wrapper to run tests using both recursive and iterative implementations. The checks are only valid in debug builds due to the use of <code>assert()</code> statements. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>number to check double factorial for </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">expected</td><td>expected result </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; {</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; assert(<a class="code" href="../../d7/d89/double__factorial_8cpp.html#a0a3c417360400093891a9ccddaa4be26">double_factorial_iterative</a>(n) == expected);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; assert(<a class="code" href="../../d7/d89/double__factorial_8cpp.html#a68ba20fed2ce427f6469c7689437829d">double_factorial_recursive</a>(n) == expected);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> assert(<a class="code hl_function" href="../../d7/d89/double__factorial_8cpp.html#a0a3c417360400093891a9ccddaa4be26">double_factorial_iterative</a>(n) == expected);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> assert(<a class="code hl_function" href="../../d7/d89/double__factorial_8cpp.html#a68ba20fed2ce427f6469c7689437829d">double_factorial_recursive</a>(n) == expected);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span>}</div>
<div class="ttc" id="adouble__factorial_8cpp_html_a0a3c417360400093891a9ccddaa4be26"><div class="ttname"><a href="../../d7/d89/double__factorial_8cpp.html#a0a3c417360400093891a9ccddaa4be26">double_factorial_iterative</a></div><div class="ttdeci">uint64_t double_factorial_iterative(uint64_t n)</div><div class="ttdef"><b>Definition:</b> double_factorial.cpp:17</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d89/double__factorial_8cpp_abbbcebf3a2d0c67f4c3cfb5511a97981_cgraph.svg" width="280" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d89/double__factorial_8cpp_abbbcebf3a2d0c67f4c3cfb5511a97981_cgraph.svg" width="280" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a88ec9ad42717780d6caaff9d3d6977f9"></a>
<a id="a88ec9ad42717780d6caaff9d3d6977f9" name="a88ec9ad42717780d6caaff9d3d6977f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88ec9ad42717780d6caaff9d3d6977f9">&#9670;&nbsp;</a></span>tests()</h2>
<div class="memitem">
@@ -270,26 +275,26 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Test implementations </p>
<div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1:\t n=5\t...&quot;</span>;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="../../d7/d89/double__factorial_8cpp.html#abbbcebf3a2d0c67f4c3cfb5511a97981">test</a>(5, 15);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2:\t n=15\t...&quot;</span>;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="../../d7/d89/double__factorial_8cpp.html#abbbcebf3a2d0c67f4c3cfb5511a97981">test</a>(15, 2027025);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3:\t n=0\t...&quot;</span>;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="../../d7/d89/double__factorial_8cpp.html#abbbcebf3a2d0c67f4c3cfb5511a97981">test</a>(0, 1);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div>
<p >Test implementations </p>
<div class="fragment"><div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1:\t n=5\t...&quot;</span>;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_function" href="../../d7/d89/double__factorial_8cpp.html#abbbcebf3a2d0c67f4c3cfb5511a97981">test</a>(5, 15);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2:\t n=15\t...&quot;</span>;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <a class="code hl_function" href="../../d7/d89/double__factorial_8cpp.html#abbbcebf3a2d0c67f4c3cfb5511a97981">test</a>(15, 2027025);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3:\t n=0\t...&quot;</span>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_function" href="../../d7/d89/double__factorial_8cpp.html#abbbcebf3a2d0c67f4c3cfb5511a97981">test</a>(0, 1);</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span>}</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="adouble__factorial_8cpp_html_abbbcebf3a2d0c67f4c3cfb5511a97981"><div class="ttname"><a href="../../d7/d89/double__factorial_8cpp.html#abbbcebf3a2d0c67f4c3cfb5511a97981">test</a></div><div class="ttdeci">void test(uint64_t n, uint64_t expected)</div><div class="ttdef"><b>Definition:</b> double_factorial.cpp:42</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d89/double__factorial_8cpp_a88ec9ad42717780d6caaff9d3d6977f9_cgraph.svg" width="379" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d89/double__factorial_8cpp_a88ec9ad42717780d6caaff9d3d6977f9_cgraph.svg" width="379" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
@@ -301,7 +306,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_296d53ceaeaa7e099814a6def439fe8a.html">math</a></li><li class="navelem"><a class="el" href="../../d7/d89/double__factorial_8cpp.html">double_factorial.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.9.1 </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.9.2 </li>
</ul>
</div>
</body>

View File

@@ -0,0 +1,3 @@
<map id="double_factorial_recursive" name="double_factorial_recursive">
<area shape="rect" id="node1" title=" " alt="" coords="5,29,183,56"/>
</map>

View File

@@ -0,0 +1 @@
abc155ed1658dcf073946bf4bdfcca3b

Some files were not shown because too many files have changed in this diff Show More