mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-04-28 20:43:50 +08:00
Documentation for 341ed50da8
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Algorithms_in_C++: operations_on_datastructures/inorder_successor_of_bst.cpp File Reference</title>
|
||||
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -17,9 +17,9 @@
|
||||
<script type="text/javascript" src="../../search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="../../search/search.js"></script>
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
|
||||
jax: ["input/TeX","output/HTML-CSS"],
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
|
||||
jax: ["input/TeX","output/HTML-CSS"],
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
|
||||
@@ -32,8 +32,7 @@
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Algorithms_in_C++
|
||||
 <span id="projectnumber">1.0.0</span>
|
||||
<div id="projectname">Algorithms_in_C++<span id="projectnumber"> 1.0.0</span>
|
||||
</div>
|
||||
<div id="projectbrief">Set of algorithms implemented in C++.</div>
|
||||
</td>
|
||||
@@ -42,21 +41,22 @@
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="../../menudata.js"></script>
|
||||
<script type="text/javascript" src="../../menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('../../',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
@@ -70,7 +70,7 @@ $(function() {
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(document).ready(function(){initNavTree('d4/d32/inorder__successor__of__bst_8cpp.html','../../'); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
@@ -94,12 +94,11 @@ $(document).ready(function(){initNavTree('d4/d32/inorder__successor__of__bst_8cp
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
<a href="#namespaces">Namespaces</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">inorder_successor_of_bst.cpp File Reference</div> </div>
|
||||
<div class="headertitle"><div class="title">inorder_successor_of_bst.cpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>An implementation for finding the <a href="https://www.youtube.com/watch?v=5cPbNCrdotA">Inorder successor of a binary search tree</a> Inorder successor of a node is the next node in Inorder traversal of the Binary Tree. Inorder Successor is NULL for the last node in Inorder traversal.
|
||||
<p>An implementation for finding the <a href="https://www.youtube.com/watch?v=5cPbNCrdotA" target="_blank">Inorder successor of a binary search tree</a> Inorder successor of a node is the next node in Inorder traversal of the Binary Tree. Inorder Successor is NULL for the last node in Inorder traversal.
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <cassert></code><br />
|
||||
<code>#include <iostream></code><br />
|
||||
@@ -111,7 +110,7 @@ Include dependency graph for inorder_successor_of_bst.cpp:</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||||
Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html">operations_on_datastructures::inorder_traversal_of_bst::Node</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A <a class="el" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html" title="A Node structure representing a single node in BST.">Node</a> structure representing a single node in BST. <a href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html#details">More...</a><br /></td></tr>
|
||||
@@ -120,38 +119,38 @@ Classes</h2></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">class encapsulating the necessary test cases <a href="../../d5/d58/class_test_cases.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:da/d6d/namespaceoperations__on__datastructures"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d6d/namespaceoperations__on__datastructures.html">operations_on_datastructures</a></td></tr>
|
||||
<tr class="memitem:da/d6d/namespaceoperations__on__datastructures"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d6d/namespaceoperations__on__datastructures.html">operations_on_datastructures</a></td></tr>
|
||||
<tr class="memdesc:da/d6d/namespaceoperations__on__datastructures"><td class="mdescLeft"> </td><td class="mdescRight">for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:dd/d74/namespaceinorder__successor__of__bst"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d74/namespaceinorder__successor__of__bst.html">inorder_successor_of_bst</a></td></tr>
|
||||
<tr class="memdesc:dd/d74/namespaceinorder__successor__of__bst"><td class="mdescLeft"> </td><td class="mdescRight">Functions for the <a href="https://www.youtube.com/watch?v=5cPbNCrdotA">Inorder successor of a binary search tree</a> implementation. <br /></td></tr>
|
||||
<tr class="memitem:dd/d74/namespaceinorder__successor__of__bst"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d74/namespaceinorder__successor__of__bst.html">inorder_successor_of_bst</a></td></tr>
|
||||
<tr class="memdesc:dd/d74/namespaceinorder__successor__of__bst"><td class="mdescLeft"> </td><td class="mdescRight">Functions for the <a href="https://www.youtube.com/watch?v=5cPbNCrdotA" target="_blank">Inorder successor of a binary search tree</a> implementation. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:a4852816cc9f28f7b9def0e5beb4e8545"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a4852816cc9f28f7b9def0e5beb4e8545">operations_on_datastructures::inorder_traversal_of_bst::makeNode</a> (int64_t <a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
|
||||
<tr class="memdesc:a4852816cc9f28f7b9def0e5beb4e8545"><td class="mdescLeft"> </td><td class="mdescRight">Allocates a new node in heap for given data and returns it's pointer. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a4852816cc9f28f7b9def0e5beb4e8545">More...</a><br /></td></tr>
|
||||
<tr class="separator:a4852816cc9f28f7b9def0e5beb4e8545"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2153df6265379da9bda259af3f46556a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a2153df6265379da9bda259af3f46556a">operations_on_datastructures::inorder_traversal_of_bst::Insert</a> (<a class="el" href="../../db/d8b/struct_node.html">Node</a> *root, int64_t <a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
|
||||
<tr class="memdesc:a2153df6265379da9bda259af3f46556a"><td class="mdescLeft"> </td><td class="mdescRight">Inserts the given data in BST while maintaining the properties of BST. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a2153df6265379da9bda259af3f46556a">More...</a><br /></td></tr>
|
||||
<tr class="separator:a2153df6265379da9bda259af3f46556a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a744afaca22fa7bb91c92209a26f23e8f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a744afaca22fa7bb91c92209a26f23e8f">operations_on_datastructures::inorder_traversal_of_bst::getNode</a> (<a class="el" href="../../db/d8b/struct_node.html">Node</a> *root, int64_t <a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
|
||||
<tr class="memdesc:a744afaca22fa7bb91c92209a26f23e8f"><td class="mdescLeft"> </td><td class="mdescRight">Searches the given data in BST and returns the pointer to the node containing that data. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a744afaca22fa7bb91c92209a26f23e8f">More...</a><br /></td></tr>
|
||||
<tr class="separator:a744afaca22fa7bb91c92209a26f23e8f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a25667588088eb647887d1c2bff0efa8c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a25667588088eb647887d1c2bff0efa8c">operations_on_datastructures::inorder_traversal_of_bst::findMinNode</a> (<a class="el" href="../../db/d8b/struct_node.html">Node</a> *root)</td></tr>
|
||||
<tr class="memdesc:a25667588088eb647887d1c2bff0efa8c"><td class="mdescLeft"> </td><td class="mdescRight">Finds and return the minimum node in BST. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a25667588088eb647887d1c2bff0efa8c">More...</a><br /></td></tr>
|
||||
<tr class="separator:a25667588088eb647887d1c2bff0efa8c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7f6f73a33beec448c27cc1d70b220702"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7f6f73a33beec448c27cc1d70b220702">operations_on_datastructures::inorder_traversal_of_bst::makeNode</a> (int64_t <a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
|
||||
<tr class="memdesc:a7f6f73a33beec448c27cc1d70b220702"><td class="mdescLeft"> </td><td class="mdescRight">Allocates a new node in heap for given data and returns it's pointer. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7f6f73a33beec448c27cc1d70b220702">More...</a><br /></td></tr>
|
||||
<tr class="separator:a7f6f73a33beec448c27cc1d70b220702"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3ae0bea4123fd2ce155108e88f2ef78c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a3ae0bea4123fd2ce155108e88f2ef78c">operations_on_datastructures::inorder_traversal_of_bst::Insert</a> (<a class="el" href="../../db/d8b/struct_node.html">Node</a> *root, int64_t <a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
|
||||
<tr class="memdesc:a3ae0bea4123fd2ce155108e88f2ef78c"><td class="mdescLeft"> </td><td class="mdescRight">Inserts the given data in BST while maintaining the properties of BST. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a3ae0bea4123fd2ce155108e88f2ef78c">More...</a><br /></td></tr>
|
||||
<tr class="separator:a3ae0bea4123fd2ce155108e88f2ef78c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a824cbf1814854824cf05f062eea07b95"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a824cbf1814854824cf05f062eea07b95">operations_on_datastructures::inorder_traversal_of_bst::getNode</a> (<a class="el" href="../../db/d8b/struct_node.html">Node</a> *root, int64_t <a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
|
||||
<tr class="memdesc:a824cbf1814854824cf05f062eea07b95"><td class="mdescLeft"> </td><td class="mdescRight">Searches the given data in BST and returns the pointer to the node containing that data. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a824cbf1814854824cf05f062eea07b95">More...</a><br /></td></tr>
|
||||
<tr class="separator:a824cbf1814854824cf05f062eea07b95"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a72483e3f6933e004a8d86371e8a990db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a72483e3f6933e004a8d86371e8a990db">operations_on_datastructures::inorder_traversal_of_bst::findMinNode</a> (<a class="el" href="../../db/d8b/struct_node.html">Node</a> *root)</td></tr>
|
||||
<tr class="memdesc:a72483e3f6933e004a8d86371e8a990db"><td class="mdescLeft"> </td><td class="mdescRight">Finds and return the minimum node in BST. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a72483e3f6933e004a8d86371e8a990db">More...</a><br /></td></tr>
|
||||
<tr class="separator:a72483e3f6933e004a8d86371e8a990db"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5d7266b934ca50c4f53e4f1e725d89a4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a5d7266b934ca50c4f53e4f1e725d89a4">operations_on_datastructures::inorder_traversal_of_bst::printInorder</a> (<a class="el" href="../../db/d8b/struct_node.html">Node</a> *root)</td></tr>
|
||||
<tr class="memdesc:a5d7266b934ca50c4f53e4f1e725d89a4"><td class="mdescLeft"> </td><td class="mdescRight">Prints the BST in inorder traversal using recursion. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a5d7266b934ca50c4f53e4f1e725d89a4">More...</a><br /></td></tr>
|
||||
<tr class="separator:a5d7266b934ca50c4f53e4f1e725d89a4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad0ca93be4f9576bfb715a4864a30dbee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#ad0ca93be4f9576bfb715a4864a30dbee">operations_on_datastructures::inorder_traversal_of_bst::makeBST</a> (<a class="el" href="../../db/d8b/struct_node.html">Node</a> *root, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< int64_t > &<a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
|
||||
<tr class="memdesc:ad0ca93be4f9576bfb715a4864a30dbee"><td class="mdescLeft"> </td><td class="mdescRight">This function is used in test cases to quickly create BST containing large data instead of hard coding it in code. For a given root, this will add all the nodes containing data passes in data vector. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#ad0ca93be4f9576bfb715a4864a30dbee">More...</a><br /></td></tr>
|
||||
<tr class="separator:ad0ca93be4f9576bfb715a4864a30dbee"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9aa3fac9aa48a6568ecf89aaee190d43"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a9aa3fac9aa48a6568ecf89aaee190d43">operations_on_datastructures::inorder_traversal_of_bst::getInorderSuccessor</a> (<a class="el" href="../../db/d8b/struct_node.html">Node</a> *root, int64_t <a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
|
||||
<tr class="memdesc:a9aa3fac9aa48a6568ecf89aaee190d43"><td class="mdescLeft"> </td><td class="mdescRight">Inorder successor of a node is the next node in inorder traversal of the Binary Tree. This function takes the root node and the data of the node for which we have to find the inorder successor, and returns the inorder successor node. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a9aa3fac9aa48a6568ecf89aaee190d43">More...</a><br /></td></tr>
|
||||
<tr class="separator:a9aa3fac9aa48a6568ecf89aaee190d43"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a05fe8a029e155c43e4efa598d4d089d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a05fe8a029e155c43e4efa598d4d089d9">operations_on_datastructures::inorder_traversal_of_bst::makeBST</a> (<a class="el" href="../../db/d8b/struct_node.html">Node</a> *root, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< int64_t > &<a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
|
||||
<tr class="memdesc:a05fe8a029e155c43e4efa598d4d089d9"><td class="mdescLeft"> </td><td class="mdescRight">This function is used in test cases to quickly create BST containing large data instead of hard coding it in code. For a given root, this will add all the nodes containing data passes in data vector. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a05fe8a029e155c43e4efa598d4d089d9">More...</a><br /></td></tr>
|
||||
<tr class="separator:a05fe8a029e155c43e4efa598d4d089d9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3923fb22b46e085376703cae0b44d690"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a3923fb22b46e085376703cae0b44d690">operations_on_datastructures::inorder_traversal_of_bst::getInorderSuccessor</a> (<a class="el" href="../../db/d8b/struct_node.html">Node</a> *root, int64_t <a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
|
||||
<tr class="memdesc:a3923fb22b46e085376703cae0b44d690"><td class="mdescLeft"> </td><td class="mdescRight">Inorder successor of a node is the next node in inorder traversal of the Binary Tree. This function takes the root node and the data of the node for which we have to find the inorder successor, and returns the inorder successor node. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a3923fb22b46e085376703cae0b44d690">More...</a><br /></td></tr>
|
||||
<tr class="separator:a3923fb22b46e085376703cae0b44d690"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7b20eb99272665c1777949e26ab59589"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7b20eb99272665c1777949e26ab59589">operations_on_datastructures::inorder_traversal_of_bst::deallocate</a> (<a class="el" href="../../db/d8b/struct_node.html">Node</a> *rootNode)</td></tr>
|
||||
<tr class="memdesc:a7b20eb99272665c1777949e26ab59589"><td class="mdescLeft"> </td><td class="mdescRight">This function clears the memory allocated to entire tree recursively. Its just for clean up the memory and not relevant to the actual topic. <a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7b20eb99272665c1777949e26ab59589">More...</a><br /></td></tr>
|
||||
<tr class="separator:a7b20eb99272665c1777949e26ab59589"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
@@ -163,7 +162,7 @@ Functions</h2></td></tr>
|
||||
<tr class="separator:a0ddf1224851353fc92bfbff6f499fa97"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>An implementation for finding the <a href="https://www.youtube.com/watch?v=5cPbNCrdotA">Inorder successor of a binary search tree</a> Inorder successor of a node is the next node in Inorder traversal of the Binary Tree. Inorder Successor is NULL for the last node in Inorder traversal. </p>
|
||||
<div class="textblock"><p >An implementation for finding the <a href="https://www.youtube.com/watch?v=5cPbNCrdotA" target="_blank">Inorder successor of a binary search tree</a> Inorder successor of a node is the next node in Inorder traversal of the Binary Tree. Inorder Successor is NULL for the last node in Inorder traversal. </p>
|
||||
<h3><a class="anchor" id="autotoc_md77"></a>
|
||||
Case 1: The given node has the right node/subtree</h3>
|
||||
<pre class="fragment"> * In this case, the left-most deepest node in the right subtree will
|
||||
@@ -184,9 +183,9 @@ Method 2: Search from the root node</h4>
|
||||
<li>In case if there is no link from a child node to the parent node, we need to walk down the tree starting from the root node to the given node, by doing so, we are visiting every ancestor of the given node.</li>
|
||||
<li>In order successor would be the deepest node in this path for which given node is in left subtree.</li>
|
||||
</ul>
|
||||
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/foo290">Nitin Sharma</a> </dd></dl>
|
||||
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/foo290" target="_blank">Nitin Sharma</a> </dd></dl>
|
||||
</div><h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="a7b20eb99272665c1777949e26ab59589"></a>
|
||||
<a id="a7b20eb99272665c1777949e26ab59589" name="a7b20eb99272665c1777949e26ab59589"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7b20eb99272665c1777949e26ab59589">◆ </a></span>deallocate()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
@@ -210,14 +209,14 @@ Method 2: Search from the root node</h4>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  {</div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span> (rootNode == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7b20eb99272665c1777949e26ab59589">deallocate</a>(rootNode->left);</div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7b20eb99272665c1777949e26ab59589">deallocate</a>(rootNode->right);</div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keyword">delete</span> (rootNode);</div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div>
|
||||
<div class="fragment"><div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> {</div>
|
||||
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keywordflow">if</span> (rootNode == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> }</div>
|
||||
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7b20eb99272665c1777949e26ab59589">deallocate</a>(rootNode->left);</div>
|
||||
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7b20eb99272665c1777949e26ab59589">deallocate</a>(rootNode->right);</div>
|
||||
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keyword">delete</span> (rootNode);</div>
|
||||
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span>}</div>
|
||||
<div class="ttc" id="ainorder__successor__of__bst_8cpp_html_a7b20eb99272665c1777949e26ab59589"><div class="ttname"><a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7b20eb99272665c1777949e26ab59589">operations_on_datastructures::inorder_traversal_of_bst::deallocate</a></div><div class="ttdeci">void deallocate(Node *rootNode)</div><div class="ttdoc">This function clears the memory allocated to entire tree recursively. Its just for clean up the memor...</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:210</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
@@ -228,14 +227,14 @@ Here is the call graph for this function:</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a25667588088eb647887d1c2bff0efa8c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a25667588088eb647887d1c2bff0efa8c">◆ </a></span>findMinNode()</h2>
|
||||
<a id="a72483e3f6933e004a8d86371e8a990db" name="a72483e3f6933e004a8d86371e8a990db"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a72483e3f6933e004a8d86371e8a990db">◆ </a></span>findMinNode()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a>* operations_on_datastructures::inorder_traversal_of_bst::findMinNode </td>
|
||||
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * operations_on_datastructures::inorder_traversal_of_bst::findMinNode </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html">Node</a> * </td>
|
||||
<td class="paramname"><em>root</em></td><td>)</td>
|
||||
@@ -252,32 +251,32 @@ Here is the call graph for this function:</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Node* Pointer to the found node </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  {</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">if</span> (root == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> root;</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">while</span> (root->left != <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  root = root->left;</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">return</span> root;</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> }</div>
|
||||
<div class="fragment"><div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> {</div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">if</span> (root == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">return</span> root;</div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> }</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">while</span> (root->left != <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> root = root->left;</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">return</span> root;</div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</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="../../d4/d32/inorder__successor__of__bst_8cpp_a25667588088eb647887d1c2bff0efa8c_cgraph.svg" width="210" height="91"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d4/d32/inorder__successor__of__bst_8cpp_a72483e3f6933e004a8d86371e8a990db_cgraph.svg" width="210" height="91"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a9aa3fac9aa48a6568ecf89aaee190d43"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9aa3fac9aa48a6568ecf89aaee190d43">◆ </a></span>getInorderSuccessor()</h2>
|
||||
<a id="a3923fb22b46e085376703cae0b44d690" name="a3923fb22b46e085376703cae0b44d690"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3923fb22b46e085376703cae0b44d690">◆ </a></span>getInorderSuccessor()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a>* operations_on_datastructures::inorder_traversal_of_bst::getInorderSuccessor </td>
|
||||
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * operations_on_datastructures::inorder_traversal_of_bst::getInorderSuccessor </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html">Node</a> * </td>
|
||||
<td class="paramname"><em>root</em>, </td>
|
||||
@@ -297,7 +296,7 @@ Here is the call graph for this function:</div>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Inorder successor of a node is the next node in inorder traversal of the Binary Tree. This function takes the root node and the data of the node for which we have to find the inorder successor, and returns the inorder successor node. </p>
|
||||
<p>Search from the root node as we need to walk the tree starting from the root node to the given node, by doing so, we are visiting every ancestor of the given node. In order successor would be the deepest node in this path for which given node is in left subtree. Time complexity O(h) </p><dl class="params"><dt>Parameters</dt><dd>
|
||||
<p >Search from the root node as we need to walk the tree starting from the root node to the given node, by doing so, we are visiting every ancestor of the given node. In order successor would be the deepest node in this path for which given node is in left subtree. Time complexity O(h) </p><dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">root</td><td>A pointer to the root node of the BST </td></tr>
|
||||
<tr><td class="paramname">data</td><td>The data (or the data of node) for which we have to find inorder successor. </td></tr>
|
||||
@@ -305,54 +304,54 @@ Here is the call graph for this function:</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="../../db/d8b/struct_node.html">Node</a> pointer to the inorder successor node. </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  {</div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="../../db/d8b/struct_node.html">Node</a> *current = <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a744afaca22fa7bb91c92209a26f23e8f">getNode</a>(root, <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">if</span> (current == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  </div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="comment">// Case - 1</span></div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">if</span> (current->right != <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">return</span> <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a25667588088eb647887d1c2bff0efa8c">findMinNode</a>(current->right);</div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="comment">// case - 2</span></div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="../../db/d8b/struct_node.html">Node</a> *successor = <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="../../db/d8b/struct_node.html">Node</a> *ancestor = root;</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">while</span> (ancestor != current && ancestor != <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="comment">// This means my current node is in left of the root node</span></div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">if</span> (current->data < ancestor->data) {</div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  successor = ancestor;</div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  ancestor = ancestor->left; <span class="comment">// keep going left</span></div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  ancestor = ancestor->right;</div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  }</div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">return</span> successor; <span class="comment">// Nodes with maximum vales will not have a successor</span></div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  }</div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> }</div>
|
||||
<div class="fragment"><div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> {</div>
|
||||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *current = <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a824cbf1814854824cf05f062eea07b95">getNode</a>(root, <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">if</span> (current == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> }</div>
|
||||
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
|
||||
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// Case - 1</span></div>
|
||||
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keywordflow">if</span> (current->right != <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a72483e3f6933e004a8d86371e8a990db">findMinNode</a>(current->right);</div>
|
||||
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> }</div>
|
||||
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// case - 2</span></div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *successor = <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *ancestor = root;</div>
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> </div>
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordflow">while</span> (ancestor != current && ancestor != <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <span class="comment">// This means my current node is in left of the root node</span></div>
|
||||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">if</span> (current->data < ancestor->data) {</div>
|
||||
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> successor = ancestor;</div>
|
||||
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> ancestor = ancestor->left; <span class="comment">// keep going left</span></div>
|
||||
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> ancestor = ancestor->right;</div>
|
||||
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> }</div>
|
||||
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> }</div>
|
||||
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">return</span> successor; <span class="comment">// Nodes with maximum vales will not have a successor</span></div>
|
||||
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> }</div>
|
||||
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span>}</div>
|
||||
<div class="ttc" id="ahash__search_8cpp_html_a6e1a77282bc65ad359d753d25df23243"><div class="ttname"><a href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a></div><div class="ttdeci">int data[MAX]</div><div class="ttdoc">test data</div><div class="ttdef"><b>Definition:</b> hash_search.cpp:24</div></div>
|
||||
<div class="ttc" id="ainorder__successor__of__bst_8cpp_html_a25667588088eb647887d1c2bff0efa8c"><div class="ttname"><a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a25667588088eb647887d1c2bff0efa8c">operations_on_datastructures::inorder_traversal_of_bst::findMinNode</a></div><div class="ttdeci">Node * findMinNode(Node *root)</div><div class="ttdoc">Finds and return the minimum node in BST.</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:121</div></div>
|
||||
<div class="ttc" id="ainorder__successor__of__bst_8cpp_html_a744afaca22fa7bb91c92209a26f23e8f"><div class="ttname"><a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a744afaca22fa7bb91c92209a26f23e8f">operations_on_datastructures::inorder_traversal_of_bst::getNode</a></div><div class="ttdeci">Node * getNode(Node *root, int64_t data)</div><div class="ttdoc">Searches the given data in BST and returns the pointer to the node containing that data.</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:100</div></div>
|
||||
<div class="ttc" id="ainorder__successor__of__bst_8cpp_html_a72483e3f6933e004a8d86371e8a990db"><div class="ttname"><a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a72483e3f6933e004a8d86371e8a990db">operations_on_datastructures::inorder_traversal_of_bst::findMinNode</a></div><div class="ttdeci">Node * findMinNode(Node *root)</div><div class="ttdoc">Finds and return the minimum node in BST.</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:121</div></div>
|
||||
<div class="ttc" id="ainorder__successor__of__bst_8cpp_html_a824cbf1814854824cf05f062eea07b95"><div class="ttname"><a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a824cbf1814854824cf05f062eea07b95">operations_on_datastructures::inorder_traversal_of_bst::getNode</a></div><div class="ttdeci">Node * getNode(Node *root, int64_t data)</div><div class="ttdoc">Searches the given data in BST and returns the pointer to the node containing that data.</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:100</div></div>
|
||||
<div class="ttc" id="astruct_node_html"><div class="ttname"><a href="../../db/d8b/struct_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> linkedlist_implentation_usingarray.cpp:14</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="../../d4/d32/inorder__successor__of__bst_8cpp_a9aa3fac9aa48a6568ecf89aaee190d43_cgraph.svg" width="210" height="91"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d4/d32/inorder__successor__of__bst_8cpp_a3923fb22b46e085376703cae0b44d690_cgraph.svg" width="210" height="91"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a744afaca22fa7bb91c92209a26f23e8f"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a744afaca22fa7bb91c92209a26f23e8f">◆ </a></span>getNode()</h2>
|
||||
<a id="a824cbf1814854824cf05f062eea07b95" name="a824cbf1814854824cf05f062eea07b95"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a824cbf1814854824cf05f062eea07b95">◆ </a></span>getNode()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a>* operations_on_datastructures::inorder_traversal_of_bst::getNode </td>
|
||||
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * operations_on_datastructures::inorder_traversal_of_bst::getNode </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html">Node</a> * </td>
|
||||
<td class="paramname"><em>root</em>, </td>
|
||||
@@ -380,42 +379,41 @@ Here is the call graph for this function:</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Node* pointer to the found node </dd></dl>
|
||||
<p><a class="el" href="../../db/d8b/struct_node.html">Node</a> found!</p>
|
||||
<p>Traverse right subtree recursively as the given data is greater than the data in root node, data must be present in right subtree.</p>
|
||||
<p>Traverse left subtree recursively as the given data is less than the data in root node, data must be present in left subtree.</p>
|
||||
<div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span> (root == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (root-><a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/data.html">data</a> == <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>) {</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">return</span> root; <span class="comment">/// Node found!</span></div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a> > root-><a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/data.html">data</a>) {<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment"> /// Traverse right subtree recursively as the given data is greater than</span></div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment"> /// the data in root node, data must be present in right subtree.</span></div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment"></span> <span class="keywordflow">return</span> <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a744afaca22fa7bb91c92209a26f23e8f">getNode</a>(root->right, <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  } <span class="keywordflow">else</span> {<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"> /// Traverse left subtree recursively as the given data is less than the</span></div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> /// data in root node, data must be present in left subtree.</span></div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"></span> <span class="keywordflow">return</span> <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a744afaca22fa7bb91c92209a26f23e8f">getNode</a>(root->left, <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> }</div>
|
||||
<div class="ttc" id="adata_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/data.html">std::vector::data</a></div><div class="ttdeci">T data(T... args)</div></div>
|
||||
<p ><a class="el" href="../../db/d8b/struct_node.html">Node</a> found!</p>
|
||||
<p >Traverse right subtree recursively as the given data is greater than the data in root node, data must be present in right subtree.</p>
|
||||
<p >Traverse left subtree recursively as the given data is less than the data in root node, data must be present in left subtree.</p>
|
||||
<div class="fragment"><div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> {</div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">if</span> (root == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (root->data == <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>) {</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">return</span> root; <span class="comment">/// Node found!</span></div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a> > root->data) {<span class="comment"></span></div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment"> /// Traverse right subtree recursively as the given data is greater than</span></div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment"> /// the data in root node, data must be present in right subtree.</span></div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment"></span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a824cbf1814854824cf05f062eea07b95">getNode</a>(root->right, <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> } <span class="keywordflow">else</span> {<span class="comment"></span></div>
|
||||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"> /// Traverse left subtree recursively as the given data is less than the</span></div>
|
||||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment"> /// data in root node, data must be present in left subtree.</span></div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"></span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a824cbf1814854824cf05f062eea07b95">getNode</a>(root->left, <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> }</div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span>}</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="../../d4/d32/inorder__successor__of__bst_8cpp_a744afaca22fa7bb91c92209a26f23e8f_cgraph.svg" width="210" height="91"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d4/d32/inorder__successor__of__bst_8cpp_a824cbf1814854824cf05f062eea07b95_cgraph.svg" width="210" height="91"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a2153df6265379da9bda259af3f46556a"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a2153df6265379da9bda259af3f46556a">◆ </a></span>Insert()</h2>
|
||||
<a id="a3ae0bea4123fd2ce155108e88f2ef78c" name="a3ae0bea4123fd2ce155108e88f2ef78c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3ae0bea4123fd2ce155108e88f2ef78c">◆ </a></span>Insert()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a>* operations_on_datastructures::inorder_traversal_of_bst::Insert </td>
|
||||
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * operations_on_datastructures::inorder_traversal_of_bst::Insert </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html">Node</a> * </td>
|
||||
<td class="paramname"><em>root</em>, </td>
|
||||
@@ -443,21 +441,21 @@ Here is the call graph for this function:</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Node* Pointer to the root node. </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  {</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">if</span> (root == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  root = <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a4852816cc9f28f7b9def0e5beb4e8545">makeNode</a>(<a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (data <= root-><a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>) {</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  root->left = Insert(root->left, <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  root->right = Insert(root->right, <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">return</span> root;</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }</div>
|
||||
<div class="ttc" id="ainorder__successor__of__bst_8cpp_html_a4852816cc9f28f7b9def0e5beb4e8545"><div class="ttname"><a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a4852816cc9f28f7b9def0e5beb4e8545">operations_on_datastructures::inorder_traversal_of_bst::makeNode</a></div><div class="ttdeci">Node * makeNode(int64_t data)</div><div class="ttdoc">Allocates a new node in heap for given data and returns it's pointer.</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:68</div></div>
|
||||
<div class="fragment"><div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> {</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">if</span> (root == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> root = <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7f6f73a33beec448c27cc1d70b220702">makeNode</a>(<a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (data <= root-><a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>) {</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> root->left = Insert(root->left, <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> root->right = Insert(root->right, <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> }</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">return</span> root;</div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span>}</div>
|
||||
<div class="ttc" id="ainorder__successor__of__bst_8cpp_html_a7f6f73a33beec448c27cc1d70b220702"><div class="ttname"><a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7f6f73a33beec448c27cc1d70b220702">operations_on_datastructures::inorder_traversal_of_bst::makeNode</a></div><div class="ttdeci">Node * makeNode(int64_t data)</div><div class="ttdoc">Allocates a new node in heap for given data and returns it's pointer.</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:68</div></div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
<a id="a0ddf1224851353fc92bfbff6f499fa97"></a>
|
||||
<a id="a0ddf1224851353fc92bfbff6f499fa97" name="a0ddf1224851353fc92bfbff6f499fa97"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0ddf1224851353fc92bfbff6f499fa97">◆ </a></span>main()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
@@ -492,51 +490,51 @@ Here is the call graph for this function:</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
|
||||
<p>< root node of the bst</p>
|
||||
<p>< Data to add nodes in BST</p>
|
||||
<p>< An element to find inorder successor for.</p>
|
||||
<p>< Making BST</p>
|
||||
<p>memory cleanup!</p>
|
||||
<div class="fragment"><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div>
|
||||
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
|
||||
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  </div>
|
||||
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <a class="code" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html">operations_on_datastructures::inorder_traversal_of_bst::Node</a> *root =</div>
|
||||
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keyword">nullptr</span>; <span class="comment">///< root node of the bst</span></div>
|
||||
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<int64_t></a> node_data{3, 4, 5,</div>
|
||||
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  89, 1, 2}; <span class="comment">///< Data to add nodes in BST</span></div>
|
||||
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  </div>
|
||||
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  int64_t targetElement = 4; <span class="comment">///< An element to find inorder successor for.</span></div>
|
||||
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  root = <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#ad0ca93be4f9576bfb715a4864a30dbee">operations_on_datastructures::inorder_traversal_of_bst::makeBST</a>(</div>
|
||||
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  root, node_data); <span class="comment">///< Making BST</span></div>
|
||||
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  </div>
|
||||
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html">operations_on_datastructures::inorder_traversal_of_bst::Node</a></div>
|
||||
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  *inorderSuccessor = operations_on_datastructures::</div>
|
||||
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  inorder_traversal_of_bst::getInorderSuccessor(root, targetElement);</div>
|
||||
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  </div>
|
||||
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"In-order sequence is : "</span>;</div>
|
||||
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a5d7266b934ca50c4f53e4f1e725d89a4">operations_on_datastructures::inorder_traversal_of_bst::printInorder</a>(root);</div>
|
||||
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  </div>
|
||||
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">if</span> (inorderSuccessor == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Inorder successor for last node is NULL"</span> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Target element is : "</span> << targetElement << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Inorder successor for target element is : "</span></div>
|
||||
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  << inorderSuccessor-><a class="code" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html#ae161f3e5ef33ade73429cab9291612e2">data</a> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div>
|
||||
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  </div>
|
||||
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7b20eb99272665c1777949e26ab59589">deallocate</a>(root); <span class="comment">/// memory cleanup!</span></div>
|
||||
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  </div>
|
||||
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> }</div>
|
||||
<p >< root node of the bst</p>
|
||||
<p >< Data to add nodes in BST</p>
|
||||
<p >< An element to find inorder successor for.</p>
|
||||
<p >< Making BST</p>
|
||||
<p >memory cleanup!</p>
|
||||
<div class="fragment"><div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> {</div>
|
||||
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
|
||||
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> </div>
|
||||
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> <a class="code hl_class" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html">operations_on_datastructures::inorder_traversal_of_bst::Node</a> *root =</div>
|
||||
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> <span class="keyword">nullptr</span>; <span class="comment">///< root node of the bst</span></div>
|
||||
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<int64_t></a> node_data{3, 4, 5,</div>
|
||||
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> 89, 1, 2}; <span class="comment">///< Data to add nodes in BST</span></div>
|
||||
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> </div>
|
||||
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> int64_t targetElement = 4; <span class="comment">///< An element to find inorder successor for.</span></div>
|
||||
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> root = <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a05fe8a029e155c43e4efa598d4d089d9">operations_on_datastructures::inorder_traversal_of_bst::makeBST</a>(</div>
|
||||
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> root, node_data); <span class="comment">///< Making BST</span></div>
|
||||
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> </div>
|
||||
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <a class="code hl_class" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html">operations_on_datastructures::inorder_traversal_of_bst::Node</a></div>
|
||||
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> *inorderSuccessor = operations_on_datastructures::</div>
|
||||
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> inorder_traversal_of_bst::getInorderSuccessor(root, targetElement);</div>
|
||||
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> </div>
|
||||
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"In-order sequence is : "</span>;</div>
|
||||
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a5d7266b934ca50c4f53e4f1e725d89a4">operations_on_datastructures::inorder_traversal_of_bst::printInorder</a>(root);</div>
|
||||
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> </div>
|
||||
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> <span class="keywordflow">if</span> (inorderSuccessor == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Inorder successor for last node is NULL"</span> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Target element is : "</span> << targetElement << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Inorder successor for target element is : "</span></div>
|
||||
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> << inorderSuccessor-><a class="code hl_variable" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html#ae161f3e5ef33ade73429cab9291612e2">data</a> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> }</div>
|
||||
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> </div>
|
||||
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a7b20eb99272665c1777949e26ab59589">deallocate</a>(root); <span class="comment">/// memory cleanup!</span></div>
|
||||
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> </div>
|
||||
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</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="aclassoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node_html"><div class="ttname"><a href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html">operations_on_datastructures::inorder_traversal_of_bst::Node</a></div><div class="ttdoc">A Node structure representing a single node in BST.</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:56</div></div>
|
||||
<div class="ttc" id="aclassoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node_html_ae161f3e5ef33ade73429cab9291612e2"><div class="ttname"><a href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html#ae161f3e5ef33ade73429cab9291612e2">operations_on_datastructures::inorder_traversal_of_bst::Node::data</a></div><div class="ttdeci">int64_t data</div><div class="ttdoc">The key/value of the node.</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:58</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="ainorder__successor__of__bst_8cpp_html_a05fe8a029e155c43e4efa598d4d089d9"><div class="ttname"><a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a05fe8a029e155c43e4efa598d4d089d9">operations_on_datastructures::inorder_traversal_of_bst::makeBST</a></div><div class="ttdeci">Node * makeBST(Node *root, const std::vector< int64_t > &data)</div><div class="ttdoc">This function is used in test cases to quickly create BST containing large data instead of hard codin...</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:155</div></div>
|
||||
<div class="ttc" id="ainorder__successor__of__bst_8cpp_html_a5d7266b934ca50c4f53e4f1e725d89a4"><div class="ttname"><a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a5d7266b934ca50c4f53e4f1e725d89a4">operations_on_datastructures::inorder_traversal_of_bst::printInorder</a></div><div class="ttdeci">void printInorder(Node *root)</div><div class="ttdoc">Prints the BST in inorder traversal using recursion.</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:136</div></div>
|
||||
<div class="ttc" id="ainorder__successor__of__bst_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:387</div></div>
|
||||
<div class="ttc" id="ainorder__successor__of__bst_8cpp_html_ad0ca93be4f9576bfb715a4864a30dbee"><div class="ttname"><a href="../../d4/d32/inorder__successor__of__bst_8cpp.html#ad0ca93be4f9576bfb715a4864a30dbee">operations_on_datastructures::inorder_traversal_of_bst::makeBST</a></div><div class="ttdeci">Node * makeBST(Node *root, const std::vector< int64_t > &data)</div><div class="ttdoc">This function is used in test cases to quickly create BST containing large data instead of hard codin...</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:155</div></div>
|
||||
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector< int64_t ></a></div></div>
|
||||
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -546,14 +544,14 @@ Here is the call graph for this function:</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ad0ca93be4f9576bfb715a4864a30dbee"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ad0ca93be4f9576bfb715a4864a30dbee">◆ </a></span>makeBST()</h2>
|
||||
<a id="a05fe8a029e155c43e4efa598d4d089d9" name="a05fe8a029e155c43e4efa598d4d089d9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a05fe8a029e155c43e4efa598d4d089d9">◆ </a></span>makeBST()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a>* operations_on_datastructures::inorder_traversal_of_bst::makeBST </td>
|
||||
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * operations_on_datastructures::inorder_traversal_of_bst::makeBST </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="../../d5/db5/classoperations__on__datastructures_1_1inorder__traversal__of__bst_1_1_node.html">Node</a> * </td>
|
||||
<td class="paramname"><em>root</em>, </td>
|
||||
@@ -581,29 +579,29 @@ Here is the call graph for this function:</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="../../db/d8b/struct_node.html">Node</a> pointer to the root node. </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">for</span> (int64_t values : <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>) {</div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  root = Insert(root, values);</div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> root;</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }</div>
|
||||
<div class="fragment"><div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> {</div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">for</span> (int64_t values : <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>) {</div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> root = Insert(root, values);</div>
|
||||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> }</div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">return</span> root;</div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</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="../../d4/d32/inorder__successor__of__bst_8cpp_ad0ca93be4f9576bfb715a4864a30dbee_cgraph.svg" width="210" height="91"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d4/d32/inorder__successor__of__bst_8cpp_a05fe8a029e155c43e4efa598d4d089d9_cgraph.svg" width="210" height="91"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a4852816cc9f28f7b9def0e5beb4e8545"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4852816cc9f28f7b9def0e5beb4e8545">◆ </a></span>makeNode()</h2>
|
||||
<a id="a7f6f73a33beec448c27cc1d70b220702" name="a7f6f73a33beec448c27cc1d70b220702"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7f6f73a33beec448c27cc1d70b220702">◆ </a></span>makeNode()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a>* operations_on_datastructures::inorder_traversal_of_bst::makeNode </td>
|
||||
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * operations_on_datastructures::inorder_traversal_of_bst::makeNode </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">int64_t </td>
|
||||
<td class="paramname"><em>data</em></td><td>)</td>
|
||||
@@ -620,28 +618,28 @@ Here is the call graph for this function:</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>A pointer to the newly allocated <a class="el" href="../../db/d8b/struct_node.html">Node</a>. </dd></dl>
|
||||
<p>< setting data for node</p>
|
||||
<p>< setting left child as null</p>
|
||||
<p>< setting right child as null</p>
|
||||
<div class="fragment"><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  {</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="../../db/d8b/struct_node.html">Node</a> *<a class="code" href="../../d5/da1/structnode.html">node</a> = <span class="keyword">new</span> <a class="code" href="../../db/d8b/struct_node.html">Node</a>();</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="../../d5/da1/structnode.html">node</a>->data = <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>; <span class="comment">///< setting data for node</span></div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="../../d5/da1/structnode.html">node</a>->left = <span class="keyword">nullptr</span>; <span class="comment">///< setting left child as null</span></div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="../../d5/da1/structnode.html">node</a>->right = <span class="keyword">nullptr</span>; <span class="comment">///< setting right child as null</span></div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">return</span> <a class="code" href="../../d1/df3/hash__search_8cpp.html#a8ca8dcb494104d273679e219e53d0555">node</a>;</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> }</div>
|
||||
<p >< setting data for node</p>
|
||||
<p >< setting left child as null</p>
|
||||
<p >< setting right child as null</p>
|
||||
<div class="fragment"><div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> {</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *<a class="code hl_class" href="../../d5/da1/structnode.html">node</a> = <span class="keyword">new</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a>();</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_class" href="../../d5/da1/structnode.html">node</a>->data = <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>; <span class="comment">///< setting data for node</span></div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <a class="code hl_class" href="../../d5/da1/structnode.html">node</a>->left = <span class="keyword">nullptr</span>; <span class="comment">///< setting left child as null</span></div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <a class="code hl_class" href="../../d5/da1/structnode.html">node</a>->right = <span class="keyword">nullptr</span>; <span class="comment">///< setting right child as null</span></div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> <a class="code hl_typedef" href="../../d1/df3/hash__search_8cpp.html#a8ca8dcb494104d273679e219e53d0555">node</a>;</div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>}</div>
|
||||
<div class="ttc" id="ahash__search_8cpp_html_a8ca8dcb494104d273679e219e53d0555"><div class="ttname"><a href="../../d1/df3/hash__search_8cpp.html#a8ca8dcb494104d273679e219e53d0555">node</a></div><div class="ttdeci">struct list node</div></div>
|
||||
<div class="ttc" id="astructnode_html"><div class="ttname"><a href="../../d5/da1/structnode.html">node</a></div><div class="ttdef"><b>Definition:</b> avltree.cpp:13</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="../../d4/d32/inorder__successor__of__bst_8cpp_a4852816cc9f28f7b9def0e5beb4e8545_cgraph.svg" width="210" height="91"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d4/d32/inorder__successor__of__bst_8cpp_a7f6f73a33beec448c27cc1d70b220702_cgraph.svg" width="210" height="91"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a5d7266b934ca50c4f53e4f1e725d89a4"></a>
|
||||
<a id="a5d7266b934ca50c4f53e4f1e725d89a4" name="a5d7266b934ca50c4f53e4f1e725d89a4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a5d7266b934ca50c4f53e4f1e725d89a4">◆ </a></span>printInorder()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
@@ -665,17 +663,17 @@ Here is the call graph for this function:</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<p>recursive call to left subtree</p>
|
||||
<p>recursive call to right subtree</p>
|
||||
<div class="fragment"><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  {</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span> (root == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a5d7266b934ca50c4f53e4f1e725d89a4">printInorder</a>(root->left); <span class="comment">/// recursive call to left subtree</span></div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << root-><a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/data.html">data</a> << <span class="stringliteral">" "</span>;</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a5d7266b934ca50c4f53e4f1e725d89a4">printInorder</a>(root->right); <span class="comment">/// recursive call to right subtree</span></div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> }</div>
|
||||
<p >recursive call to left subtree</p>
|
||||
<p >recursive call to right subtree</p>
|
||||
<div class="fragment"><div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> {</div>
|
||||
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">if</span> (root == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a5d7266b934ca50c4f53e4f1e725d89a4">printInorder</a>(root->left); <span class="comment">/// recursive call to left subtree</span></div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << root->data << <span class="stringliteral">" "</span>;</div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <a class="code hl_function" href="../../d4/d32/inorder__successor__of__bst_8cpp.html#a5d7266b934ca50c4f53e4f1e725d89a4">printInorder</a>(root->right); <span class="comment">/// recursive call to right subtree</span></div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span>}</div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -685,7 +683,7 @@ Here is the call graph for this function:</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
|
||||
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">◆ </a></span>test()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
@@ -710,10 +708,10 @@ Here is the call graph for this function:</div>
|
||||
|
||||
<p>Self-test implementations. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  {</div>
|
||||
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="../../d5/d58/class_test_cases.html">TestCases</a> tc;</div>
|
||||
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  tc.<a class="code" href="../../d5/d58/class_test_cases.html#aeabea90c02f9159e4a784bbf736e1e23">runTests</a>();</div>
|
||||
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> }</div>
|
||||
<div class="fragment"><div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> {</div>
|
||||
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> <a class="code hl_class" href="../../d5/d58/class_test_cases.html">TestCases</a> tc;</div>
|
||||
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> tc.<a class="code hl_function" href="../../d5/d58/class_test_cases.html#aeabea90c02f9159e4a784bbf736e1e23">runTests</a>();</div>
|
||||
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span>}</div>
|
||||
<div class="ttc" id="aclass_test_cases_html"><div class="ttname"><a href="../../d5/d58/class_test_cases.html">TestCases</a></div><div class="ttdoc">class encapsulating the necessary test cases</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:225</div></div>
|
||||
<div class="ttc" id="aclass_test_cases_html_aeabea90c02f9159e4a784bbf736e1e23"><div class="ttname"><a href="../../d5/d58/class_test_cases.html#aeabea90c02f9159e4a784bbf736e1e23">TestCases::runTests</a></div><div class="ttdeci">void runTests()</div><div class="ttdoc">Executes test cases.</div><div class="ttdef"><b>Definition:</b> inorder_successor_of_bst.cpp:243</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
@@ -731,7 +729,7 @@ Here is the call graph for this function:</div>
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="../../dir_35422be6552f1b3672c1b6c4aba2da64.html">operations_on_datastructures</a></li><li class="navelem"><a class="el" href="../../d4/d32/inorder__successor__of__bst_8cpp.html">inorder_successor_of_bst.cpp</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user