mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-07-27 00:41:51 +08:00
Documentation for 79fb528dad
This commit is contained in:
@@ -174,30 +174,30 @@ Functions</h2></td></tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Main function </p>
|
||||
<div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  {</div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="../../df/d82/breadth__first__search_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a>();</div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordtype">size_t</span> vertices = 0, edges = 0;</div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Enter the number of vertices: "</span>;</div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> vertices;</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Enter the number of edges: "</span>;</div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> edges;</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<int></a>> <a class="code" href="../../df/dce/namespacegraph.html">graph</a>(vertices);</div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Enter space-separated pairs of vertices that form edges: "</span></div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  << <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="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">while</span> (edges--) {</div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordtype">int</span> u = 0, v = 0;</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> u >> v;</div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="comment">// Decrement the vertex index so that we can read more convenint</span></div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="comment">// 1-based indexing from the user input.</span></div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, u - 1, v - 1);</div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  </div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="../../df/dce/namespacegraph.html#a618dce14b4883c20aace1d743d3a3f60">graph::breadth_first_search</a>(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0);</div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> }</div>
|
||||
<div class="fragment"><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="../../df/d82/breadth__first__search_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a>();</div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordtype">size_t</span> vertices = 0, edges = 0;</div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Enter the number of vertices: "</span>;</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> vertices;</div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Enter the number of edges: "</span>;</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> edges;</div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<int></a>> <a class="code" href="../../df/dce/namespacegraph.html">graph</a>(vertices);</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  </div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Enter space-separated pairs of vertices that form edges: "</span></div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  << <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="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">while</span> (edges--) {</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordtype">int</span> u = 0, v = 0;</div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> u >> v;</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="comment">// Decrement the vertex index so that we can read more convenint</span></div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="comment">// 1-based indexing from the user input.</span></div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, u - 1, v - 1);</div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  </div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="../../df/dce/namespacegraph.html#a618dce14b4883c20aace1d743d3a3f60">graph::breadth_first_search</a>(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0);</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> }</div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -224,44 +224,44 @@ 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="l00121"></a><span class="lineno"> 121</span>  {<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment"> /// Test 1 Begin</span></div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<int></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<int></a>());</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="../../df/dce/namespacegraph.html#a59b4441a0e447469e9a4f61c87f33102">graph::add_undirected_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0, 1);</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="../../df/dce/namespacegraph.html#a59b4441a0e447469e9a4f61c87f33102">graph::add_undirected_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 1, 2);</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="../../df/dce/namespacegraph.html#a59b4441a0e447469e9a4f61c87f33102">graph::add_undirected_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 2, 3);</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> returned_result = <a class="code" href="../../df/dce/namespacegraph.html#a618dce14b4883c20aace1d743d3a3f60">graph::breadth_first_search</a>(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 2);</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></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="l00130"></a><span class="lineno"> 130</span>  </div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  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="l00132"></a><span class="lineno"> 132</span>  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="l00133"></a><span class="lineno"> 133</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Test 1 Passed..."</span> << <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="l00134"></a><span class="lineno"> 134</span> <span class="comment"></span> </div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment"> /// Test 2 Begin</span></div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment"></span> returned_result = <a class="code" href="../../df/dce/namespacegraph.html#a618dce14b4883c20aace1d743d3a3f60">graph::breadth_first_search</a>(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0);</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  </div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  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="l00139"></a><span class="lineno"> 139</span>  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="l00140"></a><span class="lineno"> 140</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Test 2 Passed..."</span> << <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="l00141"></a><span class="lineno"> 141</span> <span class="comment"></span> </div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment"> /// Test 3 Begins</span></div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment"></span> <a class="code" href="../../df/dce/namespacegraph.html">graph</a>.clear();</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="../../df/dce/namespacegraph.html">graph</a>.resize(6);</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0, 1);</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0, 2);</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 1, 3);</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 2, 3);</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 1, 4);</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 3, 5);</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  returned_result = <a class="code" href="../../df/dce/namespacegraph.html#a618dce14b4883c20aace1d743d3a3f60">graph::breadth_first_search</a>(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 2);</div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  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="l00154"></a><span class="lineno"> 154</span>  </div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  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="l00156"></a><span class="lineno"> 156</span>  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="l00157"></a><span class="lineno"> 157</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Test 3 Passed..."</span> << <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="l00158"></a><span class="lineno"> 158</span> }</div>
|
||||
<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment"> /// Test 1 Begin</span></div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<int></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<int></a>());</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="../../df/dce/namespacegraph.html#a59b4441a0e447469e9a4f61c87f33102">graph::add_undirected_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0, 1);</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="../../df/dce/namespacegraph.html#a59b4441a0e447469e9a4f61c87f33102">graph::add_undirected_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 1, 2);</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="../../df/dce/namespacegraph.html#a59b4441a0e447469e9a4f61c87f33102">graph::add_undirected_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 2, 3);</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> returned_result = <a class="code" href="../../df/dce/namespacegraph.html#a618dce14b4883c20aace1d743d3a3f60">graph::breadth_first_search</a>(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 2);</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></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="l00131"></a><span class="lineno"> 131</span>  </div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  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="l00133"></a><span class="lineno"> 133</span>  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="l00134"></a><span class="lineno"> 134</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Test 1 Passed..."</span> << <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="l00135"></a><span class="lineno"> 135</span> <span class="comment"></span> </div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment"> /// Test 2 Begin</span></div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment"></span> returned_result = <a class="code" href="../../df/dce/namespacegraph.html#a618dce14b4883c20aace1d743d3a3f60">graph::breadth_first_search</a>(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0);</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  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="l00140"></a><span class="lineno"> 140</span>  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="l00141"></a><span class="lineno"> 141</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Test 2 Passed..."</span> << <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="l00142"></a><span class="lineno"> 142</span> <span class="comment"></span> </div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment"> /// Test 3 Begins</span></div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment"></span> <a class="code" href="../../df/dce/namespacegraph.html">graph</a>.clear();</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="../../df/dce/namespacegraph.html">graph</a>.resize(6);</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0, 1);</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 0, 2);</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 1, 3);</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 2, 3);</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 1, 4);</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a>(&<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 3, 5);</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  returned_result = <a class="code" href="../../df/dce/namespacegraph.html#a618dce14b4883c20aace1d743d3a3f60">graph::breadth_first_search</a>(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>, 2);</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  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="l00155"></a><span class="lineno"> 155</span>  </div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  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="l00157"></a><span class="lineno"> 157</span>  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="l00158"></a><span class="lineno"> 158</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Test 3 Passed..."</span> << <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> }</div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -273,13 +273,13 @@ Here is the call graph for this function:</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<div class="ttc" id="anamespacegraph_html_a618dce14b4883c20aace1d743d3a3f60"><div class="ttname"><a href="../../df/dce/namespacegraph.html#a618dce14b4883c20aace1d743d3a3f60">graph::breadth_first_search</a></div><div class="ttdeci">std::vector< bool > breadth_first_search(const std::vector< std::vector< int >> &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:95</div></div>
|
||||
<div class="ttc" id="anamespacegraph_html_a618dce14b4883c20aace1d743d3a3f60"><div class="ttname"><a href="../../df/dce/namespacegraph.html#a618dce14b4883c20aace1d743d3a3f60">graph::breadth_first_search</a></div><div class="ttdeci">std::vector< bool > breadth_first_search(const std::vector< std::vector< int >> &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:96</div></div>
|
||||
<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</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="anamespacegraph_html_adbe6cd1fd148173ce6a01669925d2d72"><div class="ttname"><a href="../../df/dce/namespacegraph.html#adbe6cd1fd148173ce6a01669925d2d72">graph::add_directed_edge</a></div><div class="ttdeci">void add_directed_edge(std::vector< std::vector< int >> *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:66</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_a59b4441a0e447469e9a4f61c87f33102"><div class="ttname"><a href="../../df/dce/namespacegraph.html#a59b4441a0e447469e9a4f61c87f33102">graph::add_undirected_edge</a></div><div class="ttdeci">void add_undirected_edge(std::vector< std::vector< int >> *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:81</div></div>
|
||||
<div class="ttc" id="abreadth__first__search_8cpp_html_a88ec9ad42717780d6caaff9d3d6977f9"><div class="ttname"><a href="../../df/d82/breadth__first__search_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a></div><div class="ttdeci">void tests()</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:121</div></div>
|
||||
<div class="ttc" id="abreadth__first__search_8cpp_html_a88ec9ad42717780d6caaff9d3d6977f9"><div class="ttname"><a href="../../df/d82/breadth__first__search_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a></div><div class="ttdeci">void tests()</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:122</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>
|
||||
|
||||
@@ -452,29 +452,29 @@ Here is the call graph for this function:</div>
|
||||
<p>a queue that stores vertices that need to be further explored</p>
|
||||
<p>mark the starting vertex as visited</p>
|
||||
<p>if the vertex is not visited then mark it as visited and push it to the queue</p>
|
||||
<div class="fragment"><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"> /// vector to keep track of visited vertices</span></div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> visited(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>.size(), <span class="keyword">false</span>);<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> /// a queue that stores vertices that need to be further explored</span></div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue.html">std::queue<int></a> tracker;</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"></span> </div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"> /// mark the starting vertex as visited</span></div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"></span> visited[start] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  tracker.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue/push.html">push</a>(start);</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">while</span> (!tracker.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue/empty.html">empty</a>()) {</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordtype">size_t</span> vertex = tracker.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue/front.html">front</a>();</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  tracker.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue/pop.html">pop</a>();</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> x : <a class="code" href="../../df/dce/namespacegraph.html">graph</a>[vertex]) {<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment"> /// if the vertex is not visited then mark it as visited</span></div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"> /// and push it to the queue</span></div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"></span> <span class="keywordflow">if</span> (!visited[x]) {</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  visited[x] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  tracker.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue/push.html">push</a>(x);</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> visited;</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }</div>
|
||||
<div class="fragment"><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"> /// vector to keep track of visited vertices</span></div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> visited(<a class="code" href="../../df/dce/namespacegraph.html">graph</a>.size(), <span class="keyword">false</span>);<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"> /// a queue that stores vertices that need to be further explored</span></div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue.html">std::queue<int></a> tracker;</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"></span> </div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"> /// mark the starting vertex as visited</span></div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment"></span> visited[start] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  tracker.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue/push.html">push</a>(start);</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">while</span> (!tracker.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue/empty.html">empty</a>()) {</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">size_t</span> vertex = tracker.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue/front.html">front</a>();</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  tracker.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue/pop.html">pop</a>();</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> x : <a class="code" href="../../df/dce/namespacegraph.html">graph</a>[vertex]) {<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"> /// if the vertex is not visited then mark it as visited</span></div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> /// and push it to the queue</span></div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"></span> <span class="keywordflow">if</span> (!visited[x]) {</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  visited[x] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  tracker.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue/push.html">push</a>(x);</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">return</span> visited;</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> }</div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
|
||||
Reference in New Issue
Block a user