Documentation for af90da7fb3

This commit is contained in:
github-actions
2020-10-23 08:28:15 +00:00
parent 738c84f272
commit 11ee10910b
200 changed files with 5136 additions and 5292 deletions

View File

@@ -91,8 +91,8 @@ $(document).ready(function(){initNavTree('df/d82/breadth__first__search_8cpp.htm
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">breadth_first_search.cpp File Reference</div> </div>
@@ -106,36 +106,29 @@ $(document).ready(function(){initNavTree('df/d82/breadth__first__search_8cpp.htm
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;queue&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;map&gt;</code><br />
<code>#include &lt;list&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for breadth_first_search.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d6/dec/breadth__first__search_8cpp__incl.svg" width="438" height="127"><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="../../d6/dec/breadth__first__search_8cpp__incl.svg" width="651" height="127"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 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="../../dc/d61/classgraph_1_1_graph.html">graph::Graph&lt; T &gt;</a></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>
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="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="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ad9e7929c7542e1865501c808b4364ec9"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html#ad9e7929c7542e1865501c808b4364ec9">graph::adjacency_list</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; int &gt; &gt;</td></tr>
<tr class="memdesc:ad9e7929c7542e1865501c808b4364ec9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Representation of the graph as an adjacency list. <a href="../../df/dce/namespacegraph.html#ad9e7929c7542e1865501c808b4364ec9">More...</a><br /></td></tr>
<tr class="separator:ad9e7929c7542e1865501c808b4364ec9"><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>
Functions</h2></td></tr>
<tr class="memitem:a1a13974bfe597e853bffe91aa2d3944d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html#a1a13974bfe597e853bffe91aa2d3944d">graph::add_directed_edge</a> (adjacency_list *graph, int u, int v)</td></tr>
<tr class="memdesc:a1a13974bfe597e853bffe91aa2d3944d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a directed edge from vertex u to vertex v. <a href="../../df/dce/namespacegraph.html#a1a13974bfe597e853bffe91aa2d3944d">More...</a><br /></td></tr>
<tr class="separator:a1a13974bfe597e853bffe91aa2d3944d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c7d0cbc90b3b921d02da35d58b63153"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html#a8c7d0cbc90b3b921d02da35d58b63153">graph::add_undirected_edge</a> (adjacency_list *graph, int u, int v)</td></tr>
<tr class="memdesc:a8c7d0cbc90b3b921d02da35d58b63153"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an undirected edge from vertex u to vertex v. Essentially adds too directed edges to the adjacency list reprsentation of the graph. <a href="../../df/dce/namespacegraph.html#a8c7d0cbc90b3b921d02da35d58b63153">More...</a><br /></td></tr>
<tr class="separator:a8c7d0cbc90b3b921d02da35d58b63153"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e0d3bf6c8a63f8071395c53a3cd148d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html#a0e0d3bf6c8a63f8071395c53a3cd148d">graph::breadth_first_search</a> (const adjacency_list &amp;graph, int start)</td></tr>
<tr class="memdesc:a0e0d3bf6c8a63f8071395c53a3cd148d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function performs the breadth first search algorithm over the graph. <a href="../../df/dce/namespacegraph.html#a0e0d3bf6c8a63f8071395c53a3cd148d">More...</a><br /></td></tr>
<tr class="separator:a0e0d3bf6c8a63f8071395c53a3cd148d"><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="../../df/d82/breadth__first__search_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a> ()</td></tr>
<tr class="separator:a483bb8ccf42aaf7375a83e91490eda1e"><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="../../df/d82/breadth__first__search_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
@@ -143,7 +136,9 @@ Functions</h2></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/Breadth-first_search">Breadth First Search Algorithm (Breadth First Search)</a> </p>
<dl class="section author"><dt>Author</dt><dd><a href="http://github.com/ayaankhan98">Ayaan Khan</a></dd></dl>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/ayaankhan98">Ayaan Khan</a> </dd>
<dd>
<a href="https://github.com/gpamangkp">Aman Kumar Pandey</a></dd></dl>
<p>Breadth First Search also quoted as BFS is a <a class="el" href="../../da/d9a/class_graph.html">Graph</a> Traversal Algorithm. Time Complexity O(|V| + |E|) where V are the number of vertices and E are the number of edges in the graph.</p>
<p>Applications of Breadth First Search are</p>
<ol type="1">
@@ -181,34 +176,29 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Main function </p>
<div class="fragment"><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="code" href="../../df/d82/breadth__first__search_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>();</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="keywordtype">size_t</span> vertices = 0, edges = 0;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</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="l00179"></a><span class="lineno"> 179</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="l00180"></a><span class="lineno"> 180</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="l00181"></a><span class="lineno"> 181</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="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">graph::adjacency_list</a> <a class="code" href="../../df/dce/namespacegraph.html">graph</a>(vertices);</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</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 space-separated pairs of vertices that form edges: &quot;</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</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="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">while</span> (edges--) {</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">int</span> u = 0, v = 0;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</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;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// Decrement the vertex index so that we can read more convenint</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// 1-based indexing from the user input.</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a1a13974bfe597e853bffe91aa2d3944d">graph::add_directed_edge</a>(&amp;<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, u - 1, v - 1);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</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; <a class="code" href="../../df/dce/namespacegraph.html#a0e0d3bf6c8a63f8071395c53a3cd148d">graph::breadth_first_search</a>(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0);</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;}</div>
<div class="fragment"><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="../../df/d82/breadth__first__search_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>();</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">size_t</span> edges = 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;Enter the number of edges: &quot;</span>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</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="l00189"></a><span class="lineno"> 189</span>&#160; </div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="../../dc/d61/classgraph_1_1_graph.html">graph::Graph&lt;int&gt;</a> g;</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; <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 space-separated pairs of vertices that form edges: &quot;</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</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="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">while</span> (edges--) {</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordtype">int</span> u = 0, v = 0;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</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;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(u,v);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
<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; g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a6e3efabd5e401ef0f47c179866e7454e">breadth_first_search</a>(0);</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;}</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="../../df/d82/breadth__first__search_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="612" height="458"><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="../../df/d82/breadth__first__search_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="544" height="190"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
@@ -240,48 +230,55 @@ Here is the call graph for this function:</div>
<p>Test 1 Begin</p>
<p>Test 2 Begin</p>
<p>Test 3 Begins</p>
<div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {<span class="comment"></span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> /// Test 1 Begin</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">graph::adjacency_list</a> <a class="code" href="../../df/dce/namespacegraph.html">graph</a>(4, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a>());</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a8c7d0cbc90b3b921d02da35d58b63153">graph::add_undirected_edge</a>(&amp;<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0, 1);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a8c7d0cbc90b3b921d02da35d58b63153">graph::add_undirected_edge</a>(&amp;<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 1, 2);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a8c7d0cbc90b3b921d02da35d58b63153">graph::add_undirected_edge</a>(&amp;<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 2, 3);</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; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a> returned_result = <a class="code" href="../../df/dce/namespacegraph.html#a0e0d3bf6c8a63f8071395c53a3cd148d">graph::breadth_first_search</a>(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 2);</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/container/vector.html">std::vector&lt;bool&gt;</a> correct_result = {<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>};</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; assert(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/equal.html">std::equal</a>(correct_result.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), correct_result.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>(),</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; returned_result.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>()));</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</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="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"> /// Test 2 Begin</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"></span> returned_result = <a class="code" href="../../df/dce/namespacegraph.html#a0e0d3bf6c8a63f8071395c53a3cd148d">graph::breadth_first_search</a>(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0);</div>
<div class="fragment"><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {<span class="comment"></span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> /// Test 1 Begin</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"></span> <a class="code" href="../../dc/d61/classgraph_1_1_graph.html">graph::Graph&lt;int&gt;</a> g;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;int,bool&gt;</a> correct_result;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(0,1);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(1,2);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(2,3);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; correct_result[0]=<span class="keyword">true</span>;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; correct_result[1]=<span class="keyword">true</span>;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; correct_result[2]=<span class="keyword">true</span>;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; correct_result[3]=<span class="keyword">true</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; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;int,bool&gt;</a> returned_result = g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a6e3efabd5e401ef0f47c179866e7454e">breadth_first_search</a>(2);</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(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/equal.html">std::equal</a>(correct_result.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), correct_result.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>(),</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; returned_result.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>()));</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/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="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"> /// Test 3 Begins</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"></span> <a class="code" href="../../df/dce/namespacegraph.html">graph</a>.clear();</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html">graph</a>.resize(6);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a1a13974bfe597e853bffe91aa2d3944d">graph::add_directed_edge</a>(&amp;<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0, 1);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a1a13974bfe597e853bffe91aa2d3944d">graph::add_directed_edge</a>(&amp;<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0, 2);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a1a13974bfe597e853bffe91aa2d3944d">graph::add_directed_edge</a>(&amp;<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 1, 3);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a1a13974bfe597e853bffe91aa2d3944d">graph::add_directed_edge</a>(&amp;<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 2, 3);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a1a13974bfe597e853bffe91aa2d3944d">graph::add_directed_edge</a>(&amp;<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 1, 4);</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="../../df/dce/namespacegraph.html#a1a13974bfe597e853bffe91aa2d3944d">graph::add_directed_edge</a>(&amp;<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 3, 5);</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; returned_result = <a class="code" href="../../df/dce/namespacegraph.html#a0e0d3bf6c8a63f8071395c53a3cd148d">graph::breadth_first_search</a>(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 2);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; correct_result = {<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>};</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; assert(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/equal.html">std::equal</a>(correct_result.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), correct_result.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>(),</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; returned_result.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>()));</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_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="l00171"></a><span class="lineno"> 171</span>&#160;}</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; assert(returned_result==correct_result);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</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="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> /// Test 2 Begin</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"></span> returned_result = g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a6e3efabd5e401ef0f47c179866e7454e">breadth_first_search</a>(0);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; assert(returned_result==correct_result);</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_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="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> /// Test 3 Begins</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"></span> <a class="code" href="../../dc/d61/classgraph_1_1_graph.html">graph::Graph&lt;std::string&gt;</a> g2;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Gorakhpur&quot;</span>,<span class="stringliteral">&quot;Lucknow&quot;</span>,<span class="keyword">false</span>);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Gorakhpur&quot;</span>,<span class="stringliteral">&quot;Kanpur&quot;</span>,<span class="keyword">false</span>);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Lucknow&quot;</span>,<span class="stringliteral">&quot;Agra&quot;</span>,<span class="keyword">false</span>);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Kanpur&quot;</span>,<span class="stringliteral">&quot;Agra&quot;</span>,<span class="keyword">false</span>);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Lucknow&quot;</span>,<span class="stringliteral">&quot;Prayagraj&quot;</span>,<span class="keyword">false</span>);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Agra&quot;</span>,<span class="stringliteral">&quot;Noida&quot;</span>,<span class="keyword">false</span>);</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; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;std::string,bool&gt;</a> correct_res;</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/container/map.html">std::map&lt;std::string,bool&gt;</a> returned_res=g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a6e3efabd5e401ef0f47c179866e7454e">breadth_first_search</a>(<span class="stringliteral">&quot;Kanpur&quot;</span>);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; correct_res[<span class="stringliteral">&quot;Gorakhpur&quot;</span>]=<span class="keyword">false</span>;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; correct_res[<span class="stringliteral">&quot;Lucknow&quot;</span>]=<span class="keyword">false</span>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; correct_res[<span class="stringliteral">&quot;Kanpur&quot;</span>]=<span class="keyword">true</span>;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; correct_res[<span class="stringliteral">&quot;Agra&quot;</span>]=<span class="keyword">true</span>;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; correct_res[<span class="stringliteral">&quot;Prayagraj&quot;</span>]=<span class="keyword">false</span>;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; correct_res[<span class="stringliteral">&quot;Noida&quot;</span>]=<span class="keyword">true</span>;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; assert(correct_res==returned_res);</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</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="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</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="../../df/d82/breadth__first__search_8cpp_a483bb8ccf42aaf7375a83e91490eda1e_cgraph.svg" width="514" height="351"><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="../../df/d82/breadth__first__search_8cpp_a483bb8ccf42aaf7375a83e91490eda1e_cgraph.svg" width="446" height="190"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
@@ -289,18 +286,14 @@ Here is the call graph for this function:</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aequal_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/equal.html">std::equal</a></div><div class="ttdeci">T equal(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&lt; std::vector&lt; int &gt; &gt;</a></div></div>
<div class="ttc" id="abreadth__first__search_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="../../df/d82/breadth__first__search_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:134</div></div>
<div class="ttc" id="anamespacegraph_html_a8c7d0cbc90b3b921d02da35d58b63153"><div class="ttname"><a href="../../df/dce/namespacegraph.html#a8c7d0cbc90b3b921d02da35d58b63153">graph::add_undirected_edge</a></div><div class="ttdeci">void add_undirected_edge(adjacency_list *graph, int u, int v)</div><div class="ttdoc">Adds an undirected edge from vertex u to vertex v. Essentially adds too directed edges to the adjacen...</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:92</div></div>
<div class="ttc" id="abreadth__first__search_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="../../df/d82/breadth__first__search_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:137</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="anamespacegraph_html_a0e0d3bf6c8a63f8071395c53a3cd148d"><div class="ttname"><a href="../../df/dce/namespacegraph.html#a0e0d3bf6c8a63f8071395c53a3cd148d">graph::breadth_first_search</a></div><div class="ttdeci">std::vector&lt; bool &gt; breadth_first_search(const adjacency_list &amp;graph, int start)</div><div class="ttdoc">Function performs the breadth first search algorithm over the graph.</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:107</div></div>
<div class="ttc" id="amap_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="aclassgraph_1_1_graph_html_a877b2cba40d8d46dde6fb4209effed19"><div class="ttname"><a href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">graph::Graph::add_edge</a></div><div class="ttdeci">void add_edge(T u, T v, bool bidir=true)</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:72</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="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/begin.html">std::vector::begin</a></div><div class="ttdeci">T begin(T... args)</div></div>
<div class="ttc" id="anamespacegraph_html"><div class="ttname"><a href="../../df/dce/namespacegraph.html">graph</a></div><div class="ttdoc">Graph algorithms.</div></div>
<div class="ttc" id="aend_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/end.html">std::vector::end</a></div><div class="ttdeci">T end(T... args)</div></div>
<div class="ttc" id="aclassgraph_1_1_graph_html"><div class="ttname"><a href="../../dc/d61/classgraph_1_1_graph.html">graph::Graph</a></div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:64</div></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="anamespacegraph_html_a1a13974bfe597e853bffe91aa2d3944d"><div class="ttname"><a href="../../df/dce/namespacegraph.html#a1a13974bfe597e853bffe91aa2d3944d">graph::add_directed_edge</a></div><div class="ttdeci">void add_directed_edge(adjacency_list *graph, int u, int v)</div><div class="ttdoc">Adds a directed edge from vertex u to vertex v.</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:77</div></div>
<div class="ttc" id="aclassgraph_1_1_graph_html_a6e3efabd5e401ef0f47c179866e7454e"><div class="ttname"><a href="../../dc/d61/classgraph_1_1_graph.html#a6e3efabd5e401ef0f47c179866e7454e">graph::Graph::breadth_first_search</a></div><div class="ttdeci">std::map&lt; T, bool &gt; breadth_first_search(T src)</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:94</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>