mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-03-22 12:52:48 +08:00
Documentation for c26eea874d
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>TheAlgorithms/C++: data_structures/skip_list.cpp Source File</title>
|
||||
<link rel="icon" href="../../favicon.svg" type="image/x-icon" />
|
||||
@@ -60,7 +60,7 @@ window.MathJax = {
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
|
||||
@@ -124,25 +124,26 @@ $(function(){initNavTree('d0/d5a/skip__list_8cpp_source.html','../../'); initRes
|
||||
<div class="headertitle"><div class="title">skip_list.cpp</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="../../d0/d5a/skip__list_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
|
||||
<a href="../../d0/d5a/skip__list_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include <array></span></div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include <cstring></span></div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include <ctime></span></div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include <iostream></span></div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span></div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">namespace </span><a class="code hl_namespace" href="../../d5/d3c/namespacedata__structures.html">data_structures</a> {</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="../../d5/d3c/namespacedata__structures.html#ac0d7e0be24da9f41bcb19745873c436a"> 27</a></span><span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="../../d5/d3c/namespacedata__structures.html#ac0d7e0be24da9f41bcb19745873c436a">MAX_LEVEL</a> = 2; </div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="../../d5/d3c/namespacedata__structures.html#a903639d8e6f955dd8d5c263781455d61"> 28</a></span><span class="keyword">constexpr</span> <span class="keywordtype">float</span> <a class="code hl_variable" href="../../d5/d3c/namespacedata__structures.html#a903639d8e6f955dd8d5c263781455d61">PROBABILITY</a> = 0.5; </div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span></div>
|
||||
<div class="foldopen" id="foldopen00033" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="../../d9/d49/structdata__structures_1_1_node.html"> 33</a></span><span class="keyword">struct </span><a class="code hl_struct" href="../../d9/d49/structdata__structures_1_1_node.html">Node</a> {</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="../../d9/d49/structdata__structures_1_1_node.html"> 33</a></span><span class="keyword">struct </span><a class="code hl_function" href="../../d9/d49/structdata__structures_1_1_node.html#a54a6777e72b639c3ee6446a541db8e78">Node</a> {</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="../../d9/d49/structdata__structures_1_1_node.html#ac75aa86a598357c5c882ec6a1174aa68"> 34</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="../../d9/d49/structdata__structures_1_1_node.html#ac75aa86a598357c5c882ec6a1174aa68">key</a>; </div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="../../d9/d49/structdata__structures_1_1_node.html#a6b973b0bded99b0c0bd84e887bf8c731"> 35</a></span> <span class="keywordtype">void</span>* <a class="code hl_variable" href="../../d9/d49/structdata__structures_1_1_node.html#a6b973b0bded99b0c0bd84e887bf8c731">value</a>; </div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> std::vector<std::shared_ptr<Node>></div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="../../d9/d49/structdata__structures_1_1_node.html#ac916d833aad2b9c41f01a92db2f8c48e"> 37</a></span> <a class="code hl_variable" href="../../d9/d49/structdata__structures_1_1_node.html#ac916d833aad2b9c41f01a92db2f8c48e">forward</a>; </div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span></div>
|
||||
<div class="foldopen" id="foldopen00044" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="../../d9/d49/structdata__structures_1_1_node.html#a54a6777e72b639c3ee6446a541db8e78"> 44</a></span> <a class="code hl_function" href="../../d9/d49/structdata__structures_1_1_node.html#a54a6777e72b639c3ee6446a541db8e78">Node</a>(<span class="keywordtype">int</span> <a class="code hl_variable" href="../../d9/d49/structdata__structures_1_1_node.html#ac75aa86a598357c5c882ec6a1174aa68">key</a>, <span class="keywordtype">int</span> level, <span class="keywordtype">void</span>* <a class="code hl_variable" href="../../d9/d49/structdata__structures_1_1_node.html#a6b973b0bded99b0c0bd84e887bf8c731">value</a> = <span class="keyword">nullptr</span>) : <a class="code hl_variable" href="../../d9/d49/structdata__structures_1_1_node.html#ac75aa86a598357c5c882ec6a1174aa68">key</a>(<a class="code hl_variable" href="../../d9/d49/structdata__structures_1_1_node.html#ac75aa86a598357c5c882ec6a1174aa68">key</a>), <a class="code hl_variable" href="../../d9/d49/structdata__structures_1_1_node.html#a6b973b0bded99b0c0bd84e887bf8c731">value</a>(<a class="code hl_variable" href="../../d9/d49/structdata__structures_1_1_node.html#a6b973b0bded99b0c0bd84e887bf8c731">value</a>) {</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Initialization of forward vector</span></div>
|
||||
@@ -153,9 +154,9 @@ $(function(){initNavTree('d0/d5a/skip__list_8cpp_source.html','../../'); initRes
|
||||
</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span></div>
|
||||
<div class="foldopen" id="foldopen00055" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="../../d4/d90/classdata__structures_1_1_skip_list.html"> 55</a></span><span class="keyword">class </span><a class="code hl_class" href="../../d4/d90/classdata__structures_1_1_skip_list.html">SkipList</a> {</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="../../d4/d90/classdata__structures_1_1_skip_list.html"> 55</a></span><span class="keyword">class </span><a class="code hl_function" href="../../d4/d90/classdata__structures_1_1_skip_list.html#a7ffc3688725b9d1ec6e5bb881a6e2ae4">SkipList</a> {</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="../../d4/d90/classdata__structures_1_1_skip_list.html#a3e249c2c35a8b7f5ffd2d77fee60d650"> 56</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="../../d4/d90/classdata__structures_1_1_skip_list.html#a3e249c2c35a8b7f5ffd2d77fee60d650">level</a>; </div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="../../d4/d90/classdata__structures_1_1_skip_list.html#ad7e392386d7db622185d6f7c718e4f16"> 57</a></span> std::shared_ptr<Node> <a class="code hl_variable" href="../../d4/d90/classdata__structures_1_1_skip_list.html#ad7e392386d7db622185d6f7c718e4f16">header</a>; </div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
|
||||
@@ -167,7 +168,7 @@ $(function(){initNavTree('d0/d5a/skip__list_8cpp_source.html','../../'); initRes
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <a class="code hl_variable" href="../../d4/d90/classdata__structures_1_1_skip_list.html#ad7e392386d7db622185d6f7c718e4f16">header</a> = std::make_shared<Node>(-1, <a class="code hl_variable" href="../../d5/d3c/namespacedata__structures.html#ac0d7e0be24da9f41bcb19745873c436a">MAX_LEVEL</a>);</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span></div>
|
||||
<div class="foldopen" id="foldopen00075" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="../../d4/d90/classdata__structures_1_1_skip_list.html#aa3f3813e9896792fc86b296547689ba4"> 75</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="../../d4/d90/classdata__structures_1_1_skip_list.html#aa3f3813e9896792fc86b296547689ba4">randomLevel</a>() {</div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordtype">int</span> lvl = 0;</div>
|
||||
@@ -178,7 +179,7 @@ $(function(){initNavTree('d0/d5a/skip__list_8cpp_source.html','../../'); initRes
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">return</span> lvl;</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span></div>
|
||||
<div class="foldopen" id="foldopen00090" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="../../d4/d90/classdata__structures_1_1_skip_list.html#a40a4042bdf0b6683b5f21ae7854de8a9"> 90</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../d4/d90/classdata__structures_1_1_skip_list.html#a40a4042bdf0b6683b5f21ae7854de8a9">insertElement</a>(<span class="keywordtype">int</span> key, <span class="keywordtype">void</span>* value) {</div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> std::cout << <span class="stringliteral">"Inserting"</span> << key << <span class="stringliteral">"..."</span>;</div>
|
||||
@@ -219,7 +220,7 @@ $(function(){initNavTree('d0/d5a/skip__list_8cpp_source.html','../../'); initRes
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span></div>
|
||||
<div class="foldopen" id="foldopen00133" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="../../d4/d90/classdata__structures_1_1_skip_list.html#a86925c53e139cc6c3f7df1e9003bb0b0"> 133</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../d4/d90/classdata__structures_1_1_skip_list.html#a86925c53e139cc6c3f7df1e9003bb0b0">deleteElement</a>(<span class="keywordtype">int</span> key) {</div>
|
||||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> std::shared_ptr<Node> x = <a class="code hl_variable" href="../../d4/d90/classdata__structures_1_1_skip_list.html#ad7e392386d7db622185d6f7c718e4f16">header</a>;</div>
|
||||
@@ -253,7 +254,7 @@ $(function(){initNavTree('d0/d5a/skip__list_8cpp_source.html','../../'); initRes
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> }</div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span></div>
|
||||
<div class="foldopen" id="foldopen00170" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="../../d4/d90/classdata__structures_1_1_skip_list.html#af2f3d4e15b1f47afac849c2e08a730f4"> 170</a></span> <span class="keywordtype">void</span>* <a class="code hl_function" href="../../d4/d90/classdata__structures_1_1_skip_list.html#af2f3d4e15b1f47afac849c2e08a730f4">searchElement</a>(<span class="keywordtype">int</span> key) {</div>
|
||||
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> std::shared_ptr<Node> x = <a class="code hl_variable" href="../../d4/d90/classdata__structures_1_1_skip_list.html#ad7e392386d7db622185d6f7c718e4f16">header</a>;</div>
|
||||
@@ -273,7 +274,7 @@ $(function(){initNavTree('d0/d5a/skip__list_8cpp_source.html','../../'); initRes
|
||||
<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> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span></div>
|
||||
<div class="foldopen" id="foldopen00191" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="../../d4/d90/classdata__structures_1_1_skip_list.html#a812611f80b8079268dbb19cc4e9bee5c"> 191</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../d4/d90/classdata__structures_1_1_skip_list.html#a812611f80b8079268dbb19cc4e9bee5c">displayList</a>() {</div>
|
||||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> std::cout << <span class="stringliteral">"Displaying list:\n"</span>;</div>
|
||||
@@ -292,7 +293,7 @@ $(function(){initNavTree('d0/d5a/skip__list_8cpp_source.html','../../'); initRes
|
||||
</div>
|
||||
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
|
||||
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span>} <span class="comment">// namespace data_structures</span></div>
|
||||
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> </div>
|
||||
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span></div>
|
||||
<div class="foldopen" id="foldopen00212" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"><a class="line" href="../../d0/d5a/skip__list_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4"> 212</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="../../d0/d5a/skip__list_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>() {</div>
|
||||
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> std::srand(std::time(<span class="keyword">nullptr</span>));</div>
|
||||
@@ -323,7 +324,6 @@ $(function(){initNavTree('d0/d5a/skip__list_8cpp_source.html','../../'); initRes
|
||||
<div class="ttc" id="anamespacedata__structures_html_ac0d7e0be24da9f41bcb19745873c436a"><div class="ttname"><a href="../../d5/d3c/namespacedata__structures.html#ac0d7e0be24da9f41bcb19745873c436a">data_structures::MAX_LEVEL</a></div><div class="ttdeci">constexpr int MAX_LEVEL</div><div class="ttdoc">Maximum level of skip list.</div><div class="ttdef"><b>Definition</b> <a href="#l00027">skip_list.cpp:27</a></div></div>
|
||||
<div class="ttc" id="asegtree_8cpp_html_abd3e818681fb2e29cf08f4f60f82c8e0"><div class="ttname"><a href="../../d2/d45/segtree_8cpp.html#abd3e818681fb2e29cf08f4f60f82c8e0">update</a></div><div class="ttdeci">void update(std::vector< int64_t > *segtree, std::vector< int64_t > *lazy, int64_t start, int64_t end, int64_t delta, uint64_t low, uint64_t high, uint64_t pos)</div><div class="ttdoc">Updates a range of the segment tree.</div><div class="ttdef"><b>Definition</b> <a href="../../d2/d45/segtree_8cpp_source.html#l00103">segtree.cpp:103</a></div></div>
|
||||
<div class="ttc" id="askip__list_8cpp_html_ae66f6b31b5ad750f1fe042a706a4e3d4"><div class="ttname"><a href="../../d0/d5a/skip__list_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a></div><div class="ttdeci">int main()</div><div class="ttdef"><b>Definition</b> <a href="#l00212">skip_list.cpp:212</a></div></div>
|
||||
<div class="ttc" id="astructdata__structures_1_1_node_html"><div class="ttname"><a href="../../d9/d49/structdata__structures_1_1_node.html">data_structures::Node</a></div><div class="ttdef"><b>Definition</b> <a href="#l00033">skip_list.cpp:33</a></div></div>
|
||||
<div class="ttc" id="astructdata__structures_1_1_node_html_a54a6777e72b639c3ee6446a541db8e78"><div class="ttname"><a href="../../d9/d49/structdata__structures_1_1_node.html#a54a6777e72b639c3ee6446a541db8e78">data_structures::Node::Node</a></div><div class="ttdeci">Node(int key, int level, void *value=nullptr)</div><div class="ttdef"><b>Definition</b> <a href="#l00044">skip_list.cpp:44</a></div></div>
|
||||
<div class="ttc" id="astructdata__structures_1_1_node_html_a6b973b0bded99b0c0bd84e887bf8c731"><div class="ttname"><a href="../../d9/d49/structdata__structures_1_1_node.html#a6b973b0bded99b0c0bd84e887bf8c731">data_structures::Node::value</a></div><div class="ttdeci">void * value</div><div class="ttdoc">pointer of value</div><div class="ttdef"><b>Definition</b> <a href="#l00035">skip_list.cpp:35</a></div></div>
|
||||
<div class="ttc" id="astructdata__structures_1_1_node_html_ac75aa86a598357c5c882ec6a1174aa68"><div class="ttname"><a href="../../d9/d49/structdata__structures_1_1_node.html#ac75aa86a598357c5c882ec6a1174aa68">data_structures::Node::key</a></div><div class="ttdeci">int key</div><div class="ttdoc">key integer</div><div class="ttdef"><b>Definition</b> <a href="#l00034">skip_list.cpp:34</a></div></div>
|
||||
@@ -335,7 +335,7 @@ $(function(){initNavTree('d0/d5a/skip__list_8cpp_source.html','../../'); initRes
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="../../dir_2e746e9d06bf2d8ff842208bcc6ebcfc.html">data_structures</a></li><li class="navelem"><a class="el" href="../../d0/d5a/skip__list_8cpp.html">skip_list.cpp</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
|
||||
<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.13.2 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user