Files
C-Plus-Plus/dc/de1/recursive__tree__traversal_8cpp.html
2024-09-02 12:44:09 +00:00

556 lines
59 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: others/recursive_tree_traversal.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<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"],
});
</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>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(1); });
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('dc/de1/recursive__tree__traversal_8cpp.html','../../'); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<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">recursive_tree_traversal.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Recursive version of Inorder, Preorder, and Postorder [Traversal of the Tree] (<a href="https://en.wikipedia.org/wiki/Tree_traversal">https://en.wikipedia.org/wiki/Tree_traversal</a>)
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for recursive_tree_traversal.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/dae/recursive__tree__traversal_8cpp__incl.svg" width="336" height="126"><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 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="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html">others::recursive_tree_traversals::Node</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure to hold Nodes of the tree. <a href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html">others::recursive_tree_traversals::BT</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html" title="BT used to make the entire structure of the binary tree and the functions associated with the binary ...">BT</a> used to make the entire structure of the binary tree and the functions associated with the binary tree. <a href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.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 id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><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:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d64/namespaceinterpolation__search.html">interpolation_search</a></td></tr>
<tr class="memdesc:d1/d64/namespaceinterpolation__search"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for the Recursive version of Inorder, Preorder, and Postorder <a href="https://en.wikipedia.org/wiki/Tree_traversal" target="_blank">Traversal of the Tree</a> algorithm 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 id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a951f01040f518d611228c1d182b8242c" id="r_a951f01040f518d611228c1d182b8242c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a951f01040f518d611228c1d182b8242c">others::recursive_tree_traversals::deleteAll</a> (const <a class="el" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html">Node</a> *const root)</td></tr>
<tr class="separator:a951f01040f518d611228c1d182b8242c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1440a7779ac56f47a3f355ce4a8c7da0" id="r_a1440a7779ac56f47a3f355ce4a8c7da0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a> ()</td></tr>
<tr class="memdesc:a1440a7779ac56f47a3f355ce4a8c7da0"><td class="mdescLeft">&#160;</td><td class="mdescRight">1st test-case <br /></td></tr>
<tr class="separator:a1440a7779ac56f47a3f355ce4a8c7da0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0283886819c7c140a023582b7269e2d0" id="r_a0283886819c7c140a023582b7269e2d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0283886819c7c140a023582b7269e2d0">test2</a> ()</td></tr>
<tr class="memdesc:a0283886819c7c140a023582b7269e2d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">2nd test-case <br /></td></tr>
<tr class="separator:a0283886819c7c140a023582b7269e2d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d0455dd5c30adda100e95f0423c786e" id="r_a6d0455dd5c30adda100e95f0423c786e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6d0455dd5c30adda100e95f0423c786e">test3</a> ()</td></tr>
<tr class="memdesc:a6d0455dd5c30adda100e95f0423c786e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3rd test-case <br /></td></tr>
<tr class="separator:a6d0455dd5c30adda100e95f0423c786e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a483bb8ccf42aaf7375a83e91490eda1e" id="r_a483bb8ccf42aaf7375a83e91490eda1e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a> ()</td></tr>
<tr class="memdesc:a483bb8ccf42aaf7375a83e91490eda1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Self-test implementations. <br /></td></tr>
<tr class="separator:a483bb8ccf42aaf7375a83e91490eda1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <br /></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>Recursive version of Inorder, Preorder, and Postorder [Traversal of the Tree] (<a href="https://en.wikipedia.org/wiki/Tree_traversal">https://en.wikipedia.org/wiki/Tree_traversal</a>) </p>
<h3><a class="anchor" id="autotoc_md100"></a>
Iterative Inorder Traversal of a tree</h3>
<p>For traversing a (non-empty) binary tree in an inorder fashion, we must do these three things for every node n starting from the trees root:</p>
<p>(L) Recursively traverse its left subtree. When this step is finished, we are back at n again. (N) Process n itself. (R) Recursively traverse its right subtree. When this step is finished, we are back at n again.</p>
<p>In normal inorder traversal, we visit the left subtree before the right subtree. If we visit the right subtree before visiting the left subtree, it is referred to as reverse inorder traversal.</p>
<h3><a class="anchor" id="autotoc_md101"></a>
Iterative Preorder Traversal of a tree</h3>
<p>For traversing a (non-empty) binary tree in a preorder fashion, we must do these three things for every node n starting from the trees root:</p>
<p>(N) Process n itself. (L) Recursively traverse its left subtree. When this step is finished, we are back at n again. (R) Recursively traverse its right subtree. When this step is finished, we are back at n again.</p>
<p>In normal preorder traversal, visit the left subtree before the right subtree. If we visit the right subtree before visiting the left subtree, it is referred to as reverse preorder traversal.</p>
<h3><a class="anchor" id="autotoc_md102"></a>
Iterative Postorder Traversal of a tree</h3>
<p>For traversing a (non-empty) binary tree in a postorder fashion, we must do these three things for every node n starting from the trees root:</p>
<p>(L) Recursively traverse its left subtree. When this step is finished, we are back at n again. (R) Recursively traverse its right subtree. When this step is finished, we are back at n again. (N) Process n itself.</p>
<p>In normal postorder traversal, visit the left subtree before the right subtree. If we visit the right subtree before visiting the left subtree, it is referred to as reverse postorder traversal.</p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Lazeeez" target="_blank">Lajat Manekar</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a951f01040f518d611228c1d182b8242c" name="a951f01040f518d611228c1d182b8242c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a951f01040f518d611228c1d182b8242c">&#9670;&#160;</a></span>deleteAll()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void others::recursive_tree_traversals::deleteAll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html">Node</a> *const</td> <td class="paramname"><span class="paramname"><em>root</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<div class="fragment"><div class="line"><span class="lineno"> 185</span> {</div>
<div class="line"><span class="lineno"> 186</span> <span class="keywordflow">if</span> (root) {</div>
<div class="line"><span class="lineno"> 187</span> deleteAll(root-&gt;left);</div>
<div class="line"><span class="lineno"> 188</span> deleteAll(root-&gt;right);</div>
<div class="line"><span class="lineno"> 189</span> <span class="keyword">delete</span> root;</div>
<div class="line"><span class="lineno"> 190</span> }</div>
<div class="line"><span class="lineno"> 191</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&#160;</a></span>main()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 398</span> {</div>
<div class="line"><span class="lineno"> 399</span> <a class="code hl_function" href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 400</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 401</span>}</div>
<div class="ttc" id="arecursive__tree__traversal_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> recursive_tree_traversal.cpp:386</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../dc/de1/recursive__tree__traversal_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="100%" height="510"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
</div>
</div>
<a id="a1440a7779ac56f47a3f355ce4a8c7da0" name="a1440a7779ac56f47a3f355ce4a8c7da0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1440a7779ac56f47a3f355ce4a8c7da0">&#9670;&#160;</a></span>test1()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void test1 </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>1st test-case </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<p>&lt; result stores the inorder traversal of the binary tree</p>
<p>&lt; result stores the preorder traversal of the binary tree</p>
<p>&lt; result stores the postorder traversal of the binary tree</p>
<div class="fragment"><div class="line"><span class="lineno"> 201</span> {</div>
<div class="line"><span class="lineno"> 202</span> <a class="code hl_class" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html">others::recursive_tree_traversals::BT</a> obj1;</div>
<div class="line"><span class="lineno"> 203</span> <a class="code hl_struct" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html">others::recursive_tree_traversals::Node</a> *root = obj1.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(2);</div>
<div class="line"><span class="lineno"> 204</span> root-&gt;left = obj1.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(7);</div>
<div class="line"><span class="lineno"> 205</span> root-&gt;right = obj1.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(5);</div>
<div class="line"><span class="lineno"> 206</span> root-&gt;left-&gt;left = obj1.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(2);</div>
<div class="line"><span class="lineno"> 207</span> root-&gt;left-&gt;right = obj1.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(6);</div>
<div class="line"><span class="lineno"> 208</span> root-&gt;right-&gt;right = obj1.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(9);</div>
<div class="line"><span class="lineno"> 209</span> root-&gt;left-&gt;right-&gt;left = obj1.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(5);</div>
<div class="line"><span class="lineno"> 210</span> root-&gt;left-&gt;right-&gt;right = obj1.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(11);</div>
<div class="line"><span class="lineno"> 211</span> root-&gt;right-&gt;right-&gt;left = obj1.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(4);</div>
<div class="line"><span class="lineno"> 212</span> </div>
<div class="line"><span class="lineno"> 213</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint64_t&gt;</a> actual_result_inorder{2, 7, 5, 6, 11,</div>
<div class="line"><span class="lineno"> 214</span> 2, 5, 4, 9};</div>
<div class="line"><span class="lineno"> 215</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint64_t&gt;</a> actual_result_preorder{2, 7, 2, 6, 5,</div>
<div class="line"><span class="lineno"> 216</span> 11, 5, 9, 4};</div>
<div class="line"><span class="lineno"> 217</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint64_t&gt;</a> actual_result_postorder{2, 5, 11, 6, 7,</div>
<div class="line"><span class="lineno"> 218</span> 4, 9, 5, 2};</div>
<div class="line"><span class="lineno"> 219</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint64_t&gt;</a></div>
<div class="line"><span class="lineno"> 220</span> result_inorder; <span class="comment">///&lt; result stores the inorder</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 221</span><span class="comment"> ///&lt; traversal of the binary tree</span></div>
<div class="line"><span class="lineno"> 222</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::uint64_t&gt;</a></div>
<div class="line"><span class="lineno"> 223</span> result_preorder; <span class="comment">///&lt; result stores the preorder</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 224</span><span class="comment"> ///&lt; traversal of the binary tree</span></div>
<div class="line"><span class="lineno"> 225</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::uint64_t&gt;</a></div>
<div class="line"><span class="lineno"> 226</span> result_postorder; <span class="comment">///&lt; result stores the postorder</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 227</span><span class="comment"> ///&lt; traversal of the binary tree</span></div>
<div class="line"><span class="lineno"> 228</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 229</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> size = actual_result_inorder.size();</div>
<div class="line"><span class="lineno"> 230</span> </div>
<div class="line"><span class="lineno"> 231</span> <span class="comment">// Calling inorder() function by passing a root node,</span></div>
<div class="line"><span class="lineno"> 232</span> <span class="comment">// and storing the inorder traversal in result_inorder.</span></div>
<div class="line"><span class="lineno"> 233</span> result_inorder = obj1.inorder(root);</div>
<div class="line"><span class="lineno"> 234</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;Testcase #1: Inorder Traversal...&quot;</span>;</div>
<div class="line"><span class="lineno"> 235</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = 0; i &lt; size; ++i) {</div>
<div class="line"><span class="lineno"> 236</span> assert(actual_result_inorder[i] == result_inorder[i]);</div>
<div class="line"><span class="lineno"> 237</span> }</div>
<div class="line"><span class="lineno"> 238</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!&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"><span class="lineno"> 239</span> </div>
<div class="line"><span class="lineno"> 240</span> <span class="comment">// Calling preorder() function by passing a root node,</span></div>
<div class="line"><span class="lineno"> 241</span> <span class="comment">// and storing the preorder traversal in result_preorder.</span></div>
<div class="line"><span class="lineno"> 242</span> result_preorder = obj1.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#a6397b78ceec18cb1959a1d159e134da5">preorder</a>(root);</div>
<div class="line"><span class="lineno"> 243</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;Testcase #1: Preorder Traversal...&quot;</span>;</div>
<div class="line"><span class="lineno"> 244</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = 0; i &lt; size; ++i) {</div>
<div class="line"><span class="lineno"> 245</span> assert(actual_result_preorder[i] == result_preorder[i]);</div>
<div class="line"><span class="lineno"> 246</span> }</div>
<div class="line"><span class="lineno"> 247</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!&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"><span class="lineno"> 248</span> </div>
<div class="line"><span class="lineno"> 249</span> <span class="comment">// Calling postorder() function by passing a root node,</span></div>
<div class="line"><span class="lineno"> 250</span> <span class="comment">// and storing the postorder traversal in result_postorder.</span></div>
<div class="line"><span class="lineno"> 251</span> result_postorder = obj1.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#ac9404b65f407f631915515fa2e08a40c">postorder</a>(root);</div>
<div class="line"><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;Testcase #1: Postorder Traversal...&quot;</span>;</div>
<div class="line"><span class="lineno"> 253</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = 0; i &lt; size; ++i) {</div>
<div class="line"><span class="lineno"> 254</span> assert(actual_result_postorder[i] == result_postorder[i]);</div>
<div class="line"><span class="lineno"> 255</span> }</div>
<div class="line"><span class="lineno"> 256</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!&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"><span class="lineno"> 257</span> </div>
<div class="line"><span class="lineno"> 258</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"><span class="lineno"> 259</span> deleteAll(root);</div>
<div class="line"><span class="lineno"> 260</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="aclassothers_1_1recursive__tree__traversals_1_1_b_t_html"><div class="ttname"><a href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html">others::recursive_tree_traversals::BT</a></div><div class="ttdoc">BT used to make the entire structure of the binary tree and the functions associated with the binary ...</div><div class="ttdef"><b>Definition</b> recursive_tree_traversal.cpp:88</div></div>
<div class="ttc" id="aclassothers_1_1recursive__tree__traversals_1_1_b_t_html_a6397b78ceec18cb1959a1d159e134da5"><div class="ttname"><a href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#a6397b78ceec18cb1959a1d159e134da5">others::recursive_tree_traversals::BT::preorder</a></div><div class="ttdeci">std::vector&lt; std::uint64_t &gt; preorder(Node *)</div><div class="ttdoc">preorder function that will perform the preorder traversal recursively, and return the resultant vect...</div><div class="ttdef"><b>Definition</b> recursive_tree_traversal.cpp:152</div></div>
<div class="ttc" id="aclassothers_1_1recursive__tree__traversals_1_1_b_t_html_ac9404b65f407f631915515fa2e08a40c"><div class="ttname"><a href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#ac9404b65f407f631915515fa2e08a40c">others::recursive_tree_traversals::BT::postorder</a></div><div class="ttdeci">std::vector&lt; std::uint64_t &gt; postorder(Node *)</div><div class="ttdoc">postorder function that will perform the postorder traversal recursively, and return the result vecto...</div><div class="ttdef"><b>Definition</b> recursive_tree_traversal.cpp:172</div></div>
<div class="ttc" id="aclassothers_1_1recursive__tree__traversals_1_1_b_t_html_af16da5fe0f5c54d31778d71d5a042114"><div class="ttname"><a href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">others::recursive_tree_traversals::BT::createNewNode</a></div><div class="ttdeci">Node * createNewNode(std::uint64_t)</div><div class="ttdoc">will allocate the memory for a node and, along the data and return the node.</div><div class="ttdef"><b>Definition</b> recursive_tree_traversal.cpp:118</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="ainteger_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a></div></div>
<div class="ttc" id="astructothers_1_1recursive__tree__traversals_1_1_node_html"><div class="ttname"><a href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html">others::recursive_tree_traversals::Node</a></div><div class="ttdoc">The structure to hold Nodes of the tree.</div><div class="ttdef"><b>Definition</b> recursive_tree_traversal.cpp:79</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="../../dc/de1/recursive__tree__traversal_8cpp_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.svg" width="522" height="280"><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="a0283886819c7c140a023582b7269e2d0" name="a0283886819c7c140a023582b7269e2d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0283886819c7c140a023582b7269e2d0">&#9670;&#160;</a></span>test2()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void test2 </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>2nd test-case </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<p>&lt; result stores the inorder traversal of the binary tree</p>
<p>&lt; result stores the preorder traversal of the binary tree</p>
<p>&lt; result stores the postorder traversal of the binary tree</p>
<div class="fragment"><div class="line"><span class="lineno"> 266</span> {</div>
<div class="line"><span class="lineno"> 267</span> <a class="code hl_class" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html">others::recursive_tree_traversals::BT</a> obj2;</div>
<div class="line"><span class="lineno"> 268</span> <a class="code hl_struct" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html">others::recursive_tree_traversals::Node</a> *root = obj2.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(1);</div>
<div class="line"><span class="lineno"> 269</span> root-&gt;left = obj2.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(2);</div>
<div class="line"><span class="lineno"> 270</span> root-&gt;right = obj2.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(3);</div>
<div class="line"><span class="lineno"> 271</span> root-&gt;left-&gt;left = obj2.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(4);</div>
<div class="line"><span class="lineno"> 272</span> root-&gt;right-&gt;left = obj2.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(5);</div>
<div class="line"><span class="lineno"> 273</span> root-&gt;right-&gt;right = obj2.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(6);</div>
<div class="line"><span class="lineno"> 274</span> root-&gt;right-&gt;left-&gt;left = obj2.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(7);</div>
<div class="line"><span class="lineno"> 275</span> root-&gt;right-&gt;left-&gt;right = obj2.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(8);</div>
<div class="line"><span class="lineno"> 276</span> </div>
<div class="line"><span class="lineno"> 277</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint64_t&gt;</a> actual_result_inorder{4, 2, 1, 7, 5, 8, 3, 6};</div>
<div class="line"><span class="lineno"> 278</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint64_t&gt;</a> actual_result_preorder{1, 2, 4, 3, 5, 7, 8, 6};</div>
<div class="line"><span class="lineno"> 279</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint64_t&gt;</a> actual_result_postorder{4, 2, 7, 8, 5, 6, 3, 1};</div>
<div class="line"><span class="lineno"> 280</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint64_t&gt;</a></div>
<div class="line"><span class="lineno"> 281</span> result_inorder; <span class="comment">///&lt; result stores the inorder</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 282</span><span class="comment"> ///&lt; traversal of the binary tree</span></div>
<div class="line"><span class="lineno"> 283</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::uint64_t&gt;</a></div>
<div class="line"><span class="lineno"> 284</span> result_preorder; <span class="comment">///&lt; result stores the preorder</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 285</span><span class="comment"> ///&lt; traversal of the binary tree</span></div>
<div class="line"><span class="lineno"> 286</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::uint64_t&gt;</a></div>
<div class="line"><span class="lineno"> 287</span> result_postorder; <span class="comment">///&lt; result stores the postorder</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 288</span><span class="comment"> ///&lt; traversal of the binary tree</span></div>
<div class="line"><span class="lineno"> 289</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 290</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> size = actual_result_inorder.size();</div>
<div class="line"><span class="lineno"> 291</span> </div>
<div class="line"><span class="lineno"> 292</span> <span class="comment">// Calling inorder() function by passing a root node,</span></div>
<div class="line"><span class="lineno"> 293</span> <span class="comment">// and storing the inorder traversal in result_inorder.</span></div>
<div class="line"><span class="lineno"> 294</span> result_inorder = obj2.inorder(root);</div>
<div class="line"><span class="lineno"> 295</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;Testcase #2: Inorder Traversal...&quot;</span>;</div>
<div class="line"><span class="lineno"> 296</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = 0; i &lt; size; ++i) {</div>
<div class="line"><span class="lineno"> 297</span> assert(actual_result_inorder[i] == result_inorder[i]);</div>
<div class="line"><span class="lineno"> 298</span> }</div>
<div class="line"><span class="lineno"> 299</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!&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"><span class="lineno"> 300</span> </div>
<div class="line"><span class="lineno"> 301</span> <span class="comment">// Calling preorder() function by passing a root node,</span></div>
<div class="line"><span class="lineno"> 302</span> <span class="comment">// and storing the preorder traversal in result_preorder.</span></div>
<div class="line"><span class="lineno"> 303</span> result_preorder = obj2.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#a6397b78ceec18cb1959a1d159e134da5">preorder</a>(root);</div>
<div class="line"><span class="lineno"> 304</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;Testcase #2: Preorder Traversal...&quot;</span>;</div>
<div class="line"><span class="lineno"> 305</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = 0; i &lt; size; ++i) {</div>
<div class="line"><span class="lineno"> 306</span> assert(actual_result_preorder[i] == result_preorder[i]);</div>
<div class="line"><span class="lineno"> 307</span> }</div>
<div class="line"><span class="lineno"> 308</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!&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"><span class="lineno"> 309</span> </div>
<div class="line"><span class="lineno"> 310</span> <span class="comment">// Calling postorder() function by passing a root node,</span></div>
<div class="line"><span class="lineno"> 311</span> <span class="comment">// and storing the postorder traversal in result_postorder.</span></div>
<div class="line"><span class="lineno"> 312</span> result_postorder = obj2.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#ac9404b65f407f631915515fa2e08a40c">postorder</a>(root);</div>
<div class="line"><span class="lineno"> 313</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;Testcase #2: Postorder Traversal...&quot;</span>;</div>
<div class="line"><span class="lineno"> 314</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = 0; i &lt; size; ++i) {</div>
<div class="line"><span class="lineno"> 315</span> assert(actual_result_postorder[i] == result_postorder[i]);</div>
<div class="line"><span class="lineno"> 316</span> }</div>
<div class="line"><span class="lineno"> 317</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!&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"><span class="lineno"> 318</span> </div>
<div class="line"><span class="lineno"> 319</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"><span class="lineno"> 320</span> deleteAll(root);</div>
<div class="line"><span class="lineno"> 321</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="../../dc/de1/recursive__tree__traversal_8cpp_a0283886819c7c140a023582b7269e2d0_cgraph.svg" width="522" height="280"><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="a6d0455dd5c30adda100e95f0423c786e" name="a6d0455dd5c30adda100e95f0423c786e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d0455dd5c30adda100e95f0423c786e">&#9670;&#160;</a></span>test3()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void test3 </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>3rd test-case </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<p>&lt; result stores the inorder traversal of the binary tree</p>
<p>&lt; result stores the preorder traversal of the binary tree</p>
<p>&lt; result stores the postorder traversal of the binary tree</p>
<div class="fragment"><div class="line"><span class="lineno"> 327</span> {</div>
<div class="line"><span class="lineno"> 328</span> <a class="code hl_class" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html">others::recursive_tree_traversals::BT</a> obj3;</div>
<div class="line"><span class="lineno"> 329</span> <a class="code hl_struct" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html">others::recursive_tree_traversals::Node</a> *root = obj3.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(1);</div>
<div class="line"><span class="lineno"> 330</span> root-&gt;left = obj3.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(2);</div>
<div class="line"><span class="lineno"> 331</span> root-&gt;right = obj3.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(3);</div>
<div class="line"><span class="lineno"> 332</span> root-&gt;left-&gt;left = obj3.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(4);</div>
<div class="line"><span class="lineno"> 333</span> root-&gt;left-&gt;right = obj3.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#af16da5fe0f5c54d31778d71d5a042114">createNewNode</a>(5);</div>
<div class="line"><span class="lineno"> 334</span> </div>
<div class="line"><span class="lineno"> 335</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint64_t&gt;</a> actual_result_inorder{4, 2, 5, 1, 3};</div>
<div class="line"><span class="lineno"> 336</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint64_t&gt;</a> actual_result_preorder{1, 2, 4, 5, 3};</div>
<div class="line"><span class="lineno"> 337</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint64_t&gt;</a> actual_result_postorder{4, 5, 2, 3, 1};</div>
<div class="line"><span class="lineno"> 338</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint64_t&gt;</a></div>
<div class="line"><span class="lineno"> 339</span> result_inorder; <span class="comment">///&lt; result stores the inorder</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 340</span><span class="comment"> ///&lt; traversal of the binary tree</span></div>
<div class="line"><span class="lineno"> 341</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::uint64_t&gt;</a></div>
<div class="line"><span class="lineno"> 342</span> result_preorder; <span class="comment">///&lt; result stores the preorder</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 343</span><span class="comment"> ///&lt; traversal of the binary tree</span></div>
<div class="line"><span class="lineno"> 344</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::uint64_t&gt;</a></div>
<div class="line"><span class="lineno"> 345</span> result_postorder; <span class="comment">///&lt; result stores the postorder</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 346</span><span class="comment"> ///&lt; traversal of the binary tree</span></div>
<div class="line"><span class="lineno"> 347</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 348</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> size = actual_result_inorder.size();</div>
<div class="line"><span class="lineno"> 349</span> </div>
<div class="line"><span class="lineno"> 350</span> <span class="comment">// Calling inorder() function by passing a root node,</span></div>
<div class="line"><span class="lineno"> 351</span> <span class="comment">// and storing the inorder traversal in result_inorder.</span></div>
<div class="line"><span class="lineno"> 352</span> </div>
<div class="line"><span class="lineno"> 353</span> result_inorder = obj3.inorder(root);</div>
<div class="line"><span class="lineno"> 354</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;Testcase #3: Inorder Traversal...&quot;</span>;</div>
<div class="line"><span class="lineno"> 355</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = 0; i &lt; size; ++i) {</div>
<div class="line"><span class="lineno"> 356</span> assert(actual_result_inorder[i] == result_inorder[i]);</div>
<div class="line"><span class="lineno"> 357</span> }</div>
<div class="line"><span class="lineno"> 358</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!&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"><span class="lineno"> 359</span> </div>
<div class="line"><span class="lineno"> 360</span> <span class="comment">// Calling preorder() function by passing a root node,</span></div>
<div class="line"><span class="lineno"> 361</span> <span class="comment">// and storing the preorder traversal in result_preorder.</span></div>
<div class="line"><span class="lineno"> 362</span> result_preorder = obj3.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#a6397b78ceec18cb1959a1d159e134da5">preorder</a>(root);</div>
<div class="line"><span class="lineno"> 363</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;Testcase #3: Preorder Traversal...&quot;</span>;</div>
<div class="line"><span class="lineno"> 364</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = 0; i &lt; size; ++i) {</div>
<div class="line"><span class="lineno"> 365</span> assert(actual_result_preorder[i] == result_preorder[i]);</div>
<div class="line"><span class="lineno"> 366</span> }</div>
<div class="line"><span class="lineno"> 367</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!&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"><span class="lineno"> 368</span> </div>
<div class="line"><span class="lineno"> 369</span> <span class="comment">// Calling postorder() function by passing a root node,</span></div>
<div class="line"><span class="lineno"> 370</span> <span class="comment">// and storing the postorder traversal in result_postorder.</span></div>
<div class="line"><span class="lineno"> 371</span> result_postorder = obj3.<a class="code hl_function" href="../../dd/de1/classothers_1_1recursive__tree__traversals_1_1_b_t.html#ac9404b65f407f631915515fa2e08a40c">postorder</a>(root);</div>
<div class="line"><span class="lineno"> 372</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;Testcase #3: Postorder Traversal...&quot;</span>;</div>
<div class="line"><span class="lineno"> 373</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = 0; i &lt; size; ++i) {</div>
<div class="line"><span class="lineno"> 374</span> assert(actual_result_postorder[i] == result_postorder[i]);</div>
<div class="line"><span class="lineno"> 375</span> }</div>
<div class="line"><span class="lineno"> 376</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!&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"><span class="lineno"> 377</span> </div>
<div class="line"><span class="lineno"> 378</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"><span class="lineno"> 379</span> deleteAll(root);</div>
<div class="line"><span class="lineno"> 380</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="../../dc/de1/recursive__tree__traversal_8cpp_a6d0455dd5c30adda100e95f0423c786e_cgraph.svg" width="522" height="280"><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" name="a483bb8ccf42aaf7375a83e91490eda1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a483bb8ccf42aaf7375a83e91490eda1e">&#9670;&#160;</a></span>tests()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void tests </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Self-test implementations. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 386</span> {</div>
<div class="line"><span class="lineno"> 387</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;1st test-case&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"><span class="lineno"> 388</span> <a class="code hl_function" href="#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a>(); <span class="comment">// run 1st test-case</span></div>
<div class="line"><span class="lineno"> 389</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;2nd test-case&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"><span class="lineno"> 390</span> <a class="code hl_function" href="#a0283886819c7c140a023582b7269e2d0">test2</a>(); <span class="comment">// run 2nd test-case</span></div>
<div class="line"><span class="lineno"> 391</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;3rd test-case&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"><span class="lineno"> 392</span> <a class="code hl_function" href="#a6d0455dd5c30adda100e95f0423c786e">test3</a>(); <span class="comment">// run 3rd test-case</span></div>
<div class="line"><span class="lineno"> 393</span>}</div>
<div class="ttc" id="arecursive__tree__traversal_8cpp_html_a0283886819c7c140a023582b7269e2d0"><div class="ttname"><a href="#a0283886819c7c140a023582b7269e2d0">test2</a></div><div class="ttdeci">void test2()</div><div class="ttdoc">2nd test-case</div><div class="ttdef"><b>Definition</b> recursive_tree_traversal.cpp:266</div></div>
<div class="ttc" id="arecursive__tree__traversal_8cpp_html_a1440a7779ac56f47a3f355ce4a8c7da0"><div class="ttname"><a href="#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a></div><div class="ttdeci">void test1()</div><div class="ttdoc">1st test-case</div><div class="ttdef"><b>Definition</b> recursive_tree_traversal.cpp:201</div></div>
<div class="ttc" id="arecursive__tree__traversal_8cpp_html_a6d0455dd5c30adda100e95f0423c786e"><div class="ttname"><a href="#a6d0455dd5c30adda100e95f0423c786e">test3</a></div><div class="ttdeci">void test3()</div><div class="ttdoc">3rd test-case</div><div class="ttdef"><b>Definition</b> recursive_tree_traversal.cpp:327</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="../../dc/de1/recursive__tree__traversal_8cpp_a483bb8ccf42aaf7375a83e91490eda1e_cgraph.svg" width="620" height="280"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</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="../../dir_9510827d0b234b3cc54b29892f217477.html">others</a></li><li class="navelem"><a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp.html">recursive_tree_traversal.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
</ul>
</div>
</body>
</html>