Files
C-Plus-Plus/dc/de1/recursive__tree__traversal_8cpp.html
2025-07-09 10:53:16 +00:00

539 lines
56 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.
<!-- HTML header for doxygen 1.12.0-->
<!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.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>TheAlgorithms/C++: others/recursive_tree_traversal.cpp File Reference</title>
<link rel="icon" href="../../favicon.svg" type="image/x-icon" />
<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="https://cdn.jsdelivr.net/npm/@xpack-3rd-party/doxygen-awesome-css@2.2.0-1/doxygen-awesome-darkmode-toggle.js"></script>
<script type="text/javascript">
DoxygenAwesomeDarkModeToggle.init()
</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="../../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/javascript">
window.MathJax = {
options: {
ignoreHtmlClass: 'tex2jax_ignore',
processHtmlClass: 'tex2jax_process'
},
loader: {
load: ['[tex]/ams']
},
tex: {
macros: {},
packages: ['base','configmacros','ams']
}
};
</script>
<script type="text/javascript" id="MathJax-script" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../doxygen-awesome.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="projectlogo"><img alt="Logo" src="../../project_logo.png"/></td>
<td id="projectalign">
<div id="projectname">TheAlgorithms/C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">All the algorithms implemented in C++</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('../../',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</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">
$(function(){initNavTree('dc/de1/recursive__tree__traversal_8cpp.html','../../',''); });
</script>
<div id="container">
<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="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" loading="lazy" 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>
<p><a href="../../dc/de1/recursive__tree__traversal_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:others_3A_3Arecursive_5Ftree_5Ftraversals_3A_3ANode" id="r_others_3A_3Arecursive_5Ftree_5Ftraversals_3A_3ANode"><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="memitem:others_3A_3Arecursive_5Ftree_5Ftraversals_3A_3ABT" id="r_others_3A_3Arecursive_5Ftree_5Ftraversals_3A_3ABT"><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>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-namespaces" class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:others" id="r_others"><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 <span class="tt">vector</span> <br /></td></tr>
<tr class="memitem:interpolation_5Fsearch" id="r_interpolation_5Fsearch"><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>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" 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="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="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="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="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="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>
</table>
<a name="details" id="details"></a><h2 id="header-details" 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 class="doxsection"><a class="anchor" id="autotoc_md99"></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 class="doxsection"><a class="anchor" id="autotoc_md100"></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 class="doxsection"><a class="anchor" id="autotoc_md101"></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>
<p class="definition">Definition in file <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html">recursive_tree_traversal.cpp</a>.</p>
</div><a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" 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">
<p class="definition">Definition at line <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00185">185</a> of file <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html">recursive_tree_traversal.cpp</a>.</p>
<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>
<p class="definition">Definition at line <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00398">398</a> of file <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html">recursive_tree_traversal.cpp</a>.</p>
<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> <a href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00386">recursive_tree_traversal.cpp:386</a></div></div>
</div><!-- fragment -->
</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>
<p class="definition">Definition at line <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00201">201</a> of file <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html">recursive_tree_traversal.cpp</a>.</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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a> = 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> std::vector&lt;std::uint64_t&gt; 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> std::vector&lt;std::uint64_t&gt; 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> std::vector&lt;std::uint64_t&gt; 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> std::vector&lt;std::uint64_t&gt;</div>
<div class="line"><span class="lineno"> 220</span> result_inorder; </div>
<div class="line"><span class="lineno"> 222</span> std::vector&lt;std::uint64_t&gt;</div>
<div class="line"><span class="lineno"> 223</span> result_preorder; </div>
<div class="line"><span class="lineno"> 225</span> std::vector&lt;std::uint64_t&gt;</div>
<div class="line"><span class="lineno"> 226</span> result_postorder; </div>
<div class="line"><span class="lineno"> 228</span> </div>
<div class="line"><span class="lineno"> 229</span> std::uint64_t 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> std::cout &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> std::cout &lt;&lt; <span class="stringliteral">&quot;Passed!&quot;</span> &lt;&lt; std::endl;</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> std::cout &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> std::cout &lt;&lt; <span class="stringliteral">&quot;Passed!&quot;</span> &lt;&lt; std::endl;</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> std::cout &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> std::cout &lt;&lt; <span class="stringliteral">&quot;Passed!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 257</span> </div>
<div class="line"><span class="lineno"> 258</span> std::cout &lt;&lt; std::endl;</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="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> <a href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00088">recursive_tree_traversal.cpp:88</a></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> <a href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00152">recursive_tree_traversal.cpp:152</a></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> <a href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00172">recursive_tree_traversal.cpp:172</a></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> <a href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00118">recursive_tree_traversal.cpp:118</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> <a href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00079">recursive_tree_traversal.cpp:79</a></div></div>
<div class="ttc" id="astructothers_1_1recursive__tree__traversals_1_1_node_html_a5a8a7bc2d2f847994220ae9e0b60fff3"><div class="ttname"><a href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">others::recursive_tree_traversals::Node::left</a></div><div class="ttdeci">struct Node * left</div><div class="ttdoc">struct pointer to left subtree.</div><div class="ttdef"><b>Definition</b> <a href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00081">recursive_tree_traversal.cpp:81</a></div></div>
<div class="ttc" id="astructothers_1_1recursive__tree__traversals_1_1_node_html_ab875304781a4eb9661c0931a6f1fae83"><div class="ttname"><a href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">others::recursive_tree_traversals::Node::right</a></div><div class="ttdeci">struct Node * right</div><div class="ttdoc">struct pointer to right subtree.</div><div class="ttdef"><b>Definition</b> <a href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00082">recursive_tree_traversal.cpp:82</a></div></div>
</div><!-- fragment -->
</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>
<p class="definition">Definition at line <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00266">266</a> of file <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html">recursive_tree_traversal.cpp</a>.</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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a> = 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> std::vector&lt;std::uint64_t&gt; actual_result_inorder{4, 2, 1, 7, 5, 8, 3, 6};</div>
<div class="line"><span class="lineno"> 278</span> std::vector&lt;std::uint64_t&gt; actual_result_preorder{1, 2, 4, 3, 5, 7, 8, 6};</div>
<div class="line"><span class="lineno"> 279</span> std::vector&lt;std::uint64_t&gt; actual_result_postorder{4, 2, 7, 8, 5, 6, 3, 1};</div>
<div class="line"><span class="lineno"> 280</span> std::vector&lt;std::uint64_t&gt;</div>
<div class="line"><span class="lineno"> 281</span> result_inorder; </div>
<div class="line"><span class="lineno"> 283</span> std::vector&lt;std::uint64_t&gt;</div>
<div class="line"><span class="lineno"> 284</span> result_preorder; </div>
<div class="line"><span class="lineno"> 286</span> std::vector&lt;std::uint64_t&gt;</div>
<div class="line"><span class="lineno"> 287</span> result_postorder; </div>
<div class="line"><span class="lineno"> 289</span> </div>
<div class="line"><span class="lineno"> 290</span> std::uint64_t 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> std::cout &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> std::cout &lt;&lt; <span class="stringliteral">&quot;Passed!&quot;</span> &lt;&lt; std::endl;</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> std::cout &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> std::cout &lt;&lt; <span class="stringliteral">&quot;Passed!&quot;</span> &lt;&lt; std::endl;</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> std::cout &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> std::cout &lt;&lt; <span class="stringliteral">&quot;Passed!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 318</span> </div>
<div class="line"><span class="lineno"> 319</span> std::cout &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 320</span> deleteAll(root);</div>
<div class="line"><span class="lineno"> 321</span>}</div>
</div><!-- fragment -->
</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>
<p class="definition">Definition at line <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00327">327</a> of file <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html">recursive_tree_traversal.cpp</a>.</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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a> = 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;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#a5a8a7bc2d2f847994220ae9e0b60fff3">left</a>-&gt;<a class="code hl_variable" href="../../d9/df7/structothers_1_1recursive__tree__traversals_1_1_node.html#ab875304781a4eb9661c0931a6f1fae83">right</a> = 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> std::vector&lt;std::uint64_t&gt; actual_result_inorder{4, 2, 5, 1, 3};</div>
<div class="line"><span class="lineno"> 336</span> std::vector&lt;std::uint64_t&gt; actual_result_preorder{1, 2, 4, 5, 3};</div>
<div class="line"><span class="lineno"> 337</span> std::vector&lt;std::uint64_t&gt; actual_result_postorder{4, 5, 2, 3, 1};</div>
<div class="line"><span class="lineno"> 338</span> std::vector&lt;std::uint64_t&gt;</div>
<div class="line"><span class="lineno"> 339</span> result_inorder; </div>
<div class="line"><span class="lineno"> 341</span> std::vector&lt;std::uint64_t&gt;</div>
<div class="line"><span class="lineno"> 342</span> result_preorder; </div>
<div class="line"><span class="lineno"> 344</span> std::vector&lt;std::uint64_t&gt;</div>
<div class="line"><span class="lineno"> 345</span> result_postorder; </div>
<div class="line"><span class="lineno"> 347</span> </div>
<div class="line"><span class="lineno"> 348</span> std::uint64_t 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> std::cout &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> std::cout &lt;&lt; <span class="stringliteral">&quot;Passed!&quot;</span> &lt;&lt; std::endl;</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> std::cout &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> std::cout &lt;&lt; <span class="stringliteral">&quot;Passed!&quot;</span> &lt;&lt; std::endl;</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> std::cout &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> std::cout &lt;&lt; <span class="stringliteral">&quot;Passed!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 377</span> </div>
<div class="line"><span class="lineno"> 378</span> std::cout &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 379</span> deleteAll(root);</div>
<div class="line"><span class="lineno"> 380</span>}</div>
</div><!-- fragment -->
</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">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">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>
<p class="definition">Definition at line <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00386">386</a> of file <a class="el" href="../../dc/de1/recursive__tree__traversal_8cpp_source.html">recursive_tree_traversal.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 386</span> {</div>
<div class="line"><span class="lineno"> 387</span> std::cout &lt;&lt; <span class="stringliteral">&quot;1st test-case&quot;</span> &lt;&lt; std::endl;</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> std::cout &lt;&lt; <span class="stringliteral">&quot;2nd test-case&quot;</span> &lt;&lt; std::endl;</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> std::cout &lt;&lt; <span class="stringliteral">&quot;3rd test-case&quot;</span> &lt;&lt; std::endl;</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> <a href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00266">recursive_tree_traversal.cpp:266</a></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> <a href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00201">recursive_tree_traversal.cpp:201</a></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> <a href="../../dc/de1/recursive__tree__traversal_8cpp_source.html#l00327">recursive_tree_traversal.cpp:327</a></div></div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="../../dir_9510827d0b234b3cc54b29892f217477.html">others</a></li><li class="navelem"><a 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.14.0 </li>
</ul>
</div>
</body>
</html>