</div>
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><table>
+ <tr><td class="indexkey"><a class="el" href="structbt__node.html">bt_node</a></td><td class="indexvalue">A binary tree node </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structbt__tree.html">bt_tree</a></td><td class="indexvalue">A binary tree </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structht__node.html">ht_node</a></td><td class="indexvalue">A node in a hash table </td></tr>
<tr><td class="indexkey"><a class="el" href="structht__table.html">ht_table</a></td><td class="indexvalue">A hash table </td></tr>
- <tr><td class="indexkey"><a class="el" href="structnode.html">node</a></td><td class="indexvalue">A node in a hash table </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structsll__node.html">sll_node</a></td><td class="indexvalue">A linked list node </td></tr>
</table>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="avl_8c.html">avl.c</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<h1>src/trees/avl/avl.c</h1> </div>
</div>
<div class="contents">
-<a href="avl_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"></pre></div></div>
+<a href="avl_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span>
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2012, Michael D. Lowis</span>
+<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"> *</span>
+<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
+<a name="l00009"></a>00009 <span class="comment"> * this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice,</span>
+<a name="l00012"></a>00012 <span class="comment"> * this list of conditions and the following disclaimer in the documentation</span>
+<a name="l00013"></a>00013 <span class="comment"> * and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"> *</span>
+<a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span>
+<a name="l00016"></a>00016 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span>
+<a name="l00019"></a>00019 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00020"></a>00020 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00021"></a>00021 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00022"></a>00022 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00023"></a>00023 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00024"></a>00024 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
+<a name="l00025"></a>00025 <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00026"></a>00026 <span class="comment"> *****************************************************************************/</span>
+<a name="l00027"></a>00027
+</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="avl_8c.html">avl.c</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="avl_8h.html">avl.h</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<h1>src/trees/avl/avl.h</h1> </div>
</div>
<div class="contents">
-<a href="avl_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"></pre></div></div>
+<a href="avl_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span>
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2012, Michael D. Lowis</span>
+<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"> *</span>
+<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
+<a name="l00009"></a>00009 <span class="comment"> * this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice,</span>
+<a name="l00012"></a>00012 <span class="comment"> * this list of conditions and the following disclaimer in the documentation</span>
+<a name="l00013"></a>00013 <span class="comment"> * and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"> *</span>
+<a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span>
+<a name="l00016"></a>00016 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span>
+<a name="l00019"></a>00019 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00020"></a>00020 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00021"></a>00021 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00022"></a>00022 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00023"></a>00023 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00024"></a>00024 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
+<a name="l00025"></a>00025 <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00026"></a>00026 <span class="comment"> *****************************************************************************/</span>
+<a name="l00027"></a>00027
+</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="avl_8h.html">avl.h</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
</script>
<div id="doc-content">
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<h1>src/trees/binary/bt.c File Reference</h1> </div>
</div>
<div class="contents">
-
+<div class="textblock"><code>#include "<a class="el" href="bt_8h_source.html">bt.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for bt.c:</div>
+<div class="dyncontent">
+<div class="center"><img src="bt_8c__incl.png" border="0" usemap="#src_2trees_2binary_2bt_8c" alt=""/></div>
+<map name="src_2trees_2binary_2bt_8c" id="src_2trees_2binary_2bt_8c">
+<area shape="rect" id="node3" href="bt_8h.html" title="bt.h" alt="" coords="53,83,96,112"/>\r</map>
+</div>
+</div>
<p><a href="bt_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structbt__tree.html">bt_tree</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8c.html#a3682c3b6d0e0d70a0280de485ca687cc">bt_new</a> (<a class="el" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75">bt_compare_func</a> compare)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new empty binary tree. <a href="#a3682c3b6d0e0d70a0280de485ca687cc"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8c.html#aa24dd75e23a367ec824d99793c2ba1bb">bt_free</a> (<a class="el" href="structbt__tree.html">bt_tree</a> *tree, int free_contents)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees the memory allocated for all nodes of a tree. <a href="#aa24dd75e23a367ec824d99793c2ba1bb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8c.html#a89f764721b6fb39787a79a597a7759b1">bt_compare_ptr</a> (void *obj1, void *obj2)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Compares the value of two pointers. <a href="#a89f764721b6fb39787a79a597a7759b1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8c.html#a08bc1827223c57790bbf396cd60e3317">bt_insert</a> (<a class="el" href="structbt__tree.html">bt_tree</a> *tree, void *data)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Inserts a new node into the tree. <a href="#a08bc1827223c57790bbf396cd60e3317"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8c.html#ad23029f65222ccc60e026a60e124cbb6">bt_delete</a> (<a class="el" href="structbt__tree.html">bt_tree</a> *tree, void *data)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8c.html#a4f6d976b294d6f4e0968e5d4e75a7d31">bt_find</a> (<a class="el" href="structbt__tree.html">bt_tree</a> *tree, void *data)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds and returns the data from a node containing the given data. <a href="#a4f6d976b294d6f4e0968e5d4e75a7d31"></a><br/></td></tr>
</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a89f764721b6fb39787a79a597a7759b1"></a><!-- doxytag: member="bt.c::bt_compare_ptr" ref="a89f764721b6fb39787a79a597a7759b1" args="(void *obj1, void *obj2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int bt_compare_ptr </td>
+ <td>(</td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>obj1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>obj2</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Compares the value of two pointers. </p>
+<p>This function takes two pointers and compares their values returning an integral value representing the result of the comparison. A return value of zero indicates the pointers are equal. A positive value indicates that obj2 is greater than obj1 and a negative value indicates the opposite.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">obj1</td><td>The first object to be compared. </td></tr>
+ <tr><td class="paramname">obj2</td><td>The second object to be compared.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The result of the comparison. </dd></dl>
+
+<p>Definition at line <a class="el" href="bt_8c_source.html#l00039">39</a> of file <a class="el" href="bt_8c_source.html">bt.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad23029f65222ccc60e026a60e124cbb6"></a><!-- doxytag: member="bt.c::bt_delete" ref="ad23029f65222ccc60e026a60e124cbb6" args="(bt_tree *tree, void *data)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void bt_delete </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structbt__tree.html">bt_tree</a> * </td>
+ <td class="paramname"><em>tree</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>data</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="bt_8c_source.html#l00049">49</a> of file <a class="el" href="bt_8c_source.html">bt.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4f6d976b294d6f4e0968e5d4e75a7d31"></a><!-- doxytag: member="bt.c::bt_find" ref="a4f6d976b294d6f4e0968e5d4e75a7d31" args="(bt_tree *tree, void *data)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* bt_find </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structbt__tree.html">bt_tree</a> * </td>
+ <td class="paramname"><em>tree</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>data</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Finds and returns the data from a node containing the given data. </p>
+<p>This function uses the tree's compare function to search the tree for a node containing the given data. If a node containing the given data is found then the pointer to the contents of the node is returned. Otherwise a null pointer is returned.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">tree</td><td>The tree to be searched. </td></tr>
+ <tr><td class="paramname">data</td><td>The data to be searched for.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the found data. </dd></dl>
+
+<p>Definition at line <a class="el" href="bt_8c_source.html#l00054">54</a> of file <a class="el" href="bt_8c_source.html">bt.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa24dd75e23a367ec824d99793c2ba1bb"></a><!-- doxytag: member="bt.c::bt_free" ref="aa24dd75e23a367ec824d99793c2ba1bb" args="(bt_tree *tree, int free_contents)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void bt_free </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structbt__tree.html">bt_tree</a> * </td>
+ <td class="paramname"><em>tree</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>free_contents</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Frees the memory allocated for all nodes of a tree. </p>
+<p>This function frees all memory associated with the given tree. If free_contents has a non-zero value then the contents pointer of each node will aslo be freed.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">tree</td><td>The tree to be freed. </td></tr>
+ <tr><td class="paramname">free_contents</td><td>Determines whether the contents pointers will be freed. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="bt_8c_source.html#l00034">34</a> of file <a class="el" href="bt_8c_source.html">bt.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a08bc1827223c57790bbf396cd60e3317"></a><!-- doxytag: member="bt.c::bt_insert" ref="a08bc1827223c57790bbf396cd60e3317" args="(bt_tree *tree, void *data)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void bt_insert </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structbt__tree.html">bt_tree</a> * </td>
+ <td class="paramname"><em>tree</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>data</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Inserts a new node into the tree. </p>
+<p>This function uses the tree's compare function to traverse the tree until an existing node with the given data is found or until a leaf node is reached. If a node exists containing the given data then no insertion is performed. If a leaf node is reached then the a new leaf node is created and set as the left or right child of that leaf node.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">tree</td><td>The tree in which the node will be inserted. </td></tr>
+ <tr><td class="paramname">data</td><td>The data that the new node will contain. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="bt_8c_source.html#l00044">44</a> of file <a class="el" href="bt_8c_source.html">bt.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3682c3b6d0e0d70a0280de485ca687cc"></a><!-- doxytag: member="bt.c::bt_new" ref="a3682c3b6d0e0d70a0280de485ca687cc" args="(bt_compare_func compare)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structbt__tree.html">bt_tree</a>* bt_new </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75">bt_compare_func</a> </td>
+ <td class="paramname"><em>compare</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a new empty binary tree. </p>
+<p>This function creates a new empty binary search tree with the given comparison function. The comparison function will be used during searching, insertions, and deletions, to find and traverse the tree.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">compare</td><td>The function to use for comparing items in the tree.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly created tree. </dd></dl>
+
+<p>Definition at line <a class="el" href="bt_8c_source.html#l00029">29</a> of file <a class="el" href="bt_8c_source.html">bt.c</a>.</p>
+
+</div>
+</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="bt_8c.html">bt.c</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
--- /dev/null
+<map id="G" name="G">
+<area shape="rect" id="node3" href="$bt_8h.html" title="bt.h" alt="" coords="53,83,96,112"/>
+</map>
--- /dev/null
+39f16308d7e4e32fdc16d89e44160432
\ No newline at end of file
<h1>src/trees/binary/bt.c</h1> </div>
</div>
<div class="contents">
-<a href="bt_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"></pre></div></div>
+<a href="bt_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span>
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2012, Michael D. Lowis</span>
+<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"> *</span>
+<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
+<a name="l00009"></a>00009 <span class="comment"> * this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice,</span>
+<a name="l00012"></a>00012 <span class="comment"> * this list of conditions and the following disclaimer in the documentation</span>
+<a name="l00013"></a>00013 <span class="comment"> * and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"> *</span>
+<a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span>
+<a name="l00016"></a>00016 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span>
+<a name="l00019"></a>00019 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00020"></a>00020 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00021"></a>00021 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00022"></a>00022 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00023"></a>00023 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00024"></a>00024 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
+<a name="l00025"></a>00025 <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00026"></a>00026 <span class="comment"> *****************************************************************************/</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="bt_8h.html">bt.h</a>"</span>
+<a name="l00028"></a>00028
+<a name="l00029"></a><a class="code" href="bt_8h.html#a3682c3b6d0e0d70a0280de485ca687cc">00029</a> <a class="code" href="structbt__tree.html" title="A binary tree.">bt_tree</a>* <a class="code" href="bt_8c.html#a3682c3b6d0e0d70a0280de485ca687cc" title="Creates a new empty binary tree.">bt_new</a>(<a class="code" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75" title="A function pointer for a comparison function.">bt_compare_func</a> compare)
+<a name="l00030"></a>00030 {
+<a name="l00031"></a>00031
+<a name="l00032"></a>00032 }
+<a name="l00033"></a>00033
+<a name="l00034"></a><a class="code" href="bt_8h.html#aa24dd75e23a367ec824d99793c2ba1bb">00034</a> <span class="keywordtype">void</span> <a class="code" href="bt_8c.html#aa24dd75e23a367ec824d99793c2ba1bb" title="Frees the memory allocated for all nodes of a tree.">bt_free</a>(<a class="code" href="structbt__tree.html" title="A binary tree.">bt_tree</a>* tree, <span class="keywordtype">int</span> free_contents)
+<a name="l00035"></a>00035 {
+<a name="l00036"></a>00036
+<a name="l00037"></a>00037 }
+<a name="l00038"></a>00038
+<a name="l00039"></a><a class="code" href="bt_8h.html#a89f764721b6fb39787a79a597a7759b1">00039</a> <span class="keywordtype">int</span> <a class="code" href="bt_8c.html#a89f764721b6fb39787a79a597a7759b1" title="Compares the value of two pointers.">bt_compare_ptr</a>(<span class="keywordtype">void</span>* obj1, <span class="keywordtype">void</span>* obj2)
+<a name="l00040"></a>00040 {
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042 }
+<a name="l00043"></a>00043
+<a name="l00044"></a><a class="code" href="bt_8h.html#a08bc1827223c57790bbf396cd60e3317">00044</a> <span class="keywordtype">void</span> <a class="code" href="bt_8c.html#a08bc1827223c57790bbf396cd60e3317" title="Inserts a new node into the tree.">bt_insert</a>(<a class="code" href="structbt__tree.html" title="A binary tree.">bt_tree</a>* tree, <span class="keywordtype">void</span>* data)
+<a name="l00045"></a>00045 {
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 }
+<a name="l00048"></a>00048
+<a name="l00049"></a><a class="code" href="bt_8c.html#ad23029f65222ccc60e026a60e124cbb6">00049</a> <span class="keywordtype">void</span> <a class="code" href="bt_8c.html#ad23029f65222ccc60e026a60e124cbb6">bt_delete</a>(<a class="code" href="structbt__tree.html" title="A binary tree.">bt_tree</a>* tree, <span class="keywordtype">void</span>* data)
+<a name="l00050"></a>00050 {
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 }
+<a name="l00053"></a>00053
+<a name="l00054"></a><a class="code" href="bt_8h.html#a4f6d976b294d6f4e0968e5d4e75a7d31">00054</a> <span class="keywordtype">void</span>* <a class="code" href="bt_8c.html#a4f6d976b294d6f4e0968e5d4e75a7d31" title="Finds and returns the data from a node containing the given data.">bt_find</a>(<a class="code" href="structbt__tree.html" title="A binary tree.">bt_tree</a>* tree, <span class="keywordtype">void</span>* data)
+<a name="l00055"></a>00055 {
+<a name="l00056"></a>00056
+<a name="l00057"></a>00057 }
+<a name="l00058"></a>00058
+</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="bt_8c.html">bt.c</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
</script>
<div id="doc-content">
<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#typedef-members">Typedefs</a> |
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<h1>src/trees/binary/bt.h File Reference</h1> </div>
</div>
<div class="contents">
-
+<div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><img src="bt_8h__dep__incl.png" border="0" usemap="#src_2trees_2binary_2bt_8hdep" alt=""/></div>
+<map name="src_2trees_2binary_2bt_8hdep" id="src_2trees_2binary_2bt_8hdep">
+<area shape="rect" id="node3" href="bt_8c.html" title="src/trees/binary/bt.c" alt="" coords="5,83,144,112"/>\r</map>
+</div>
+</div>
<p><a href="bt_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structbt__node.html">bt_node</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">A binary tree node. <a href="structbt__node.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structbt__tree.html">bt_tree</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">A binary tree. <a href="structbt__tree.html#_details">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75">bt_compare_func</a> )(void *, void *)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">A function pointer for a comparison function. <a href="#a8a7bf1216efb8b05f20a020acd705f75"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structbt__node.html">bt_node</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8h.html#a0add8fba825be5e3f912ab7323c1adaa">bt_node</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">A binary tree node. <a href="#a0add8fba825be5e3f912ab7323c1adaa"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structbt__tree.html">bt_tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8h.html#acc5ee766f7f379b1d2fde9e7468d7e2a">bt_tree</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">A binary tree. <a href="#acc5ee766f7f379b1d2fde9e7468d7e2a"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structbt__tree.html">bt_tree</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8h.html#a3682c3b6d0e0d70a0280de485ca687cc">bt_new</a> (<a class="el" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75">bt_compare_func</a> compare)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new empty binary tree. <a href="#a3682c3b6d0e0d70a0280de485ca687cc"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8h.html#aa24dd75e23a367ec824d99793c2ba1bb">bt_free</a> (<a class="el" href="structbt__tree.html">bt_tree</a> *tree, int free_contents)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees the memory allocated for all nodes of a tree. <a href="#aa24dd75e23a367ec824d99793c2ba1bb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8h.html#a89f764721b6fb39787a79a597a7759b1">bt_compare_ptr</a> (void *obj1, void *obj2)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Compares the value of two pointers. <a href="#a89f764721b6fb39787a79a597a7759b1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8h.html#a08bc1827223c57790bbf396cd60e3317">bt_insert</a> (<a class="el" href="structbt__tree.html">bt_tree</a> *tree, void *data)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Inserts a new node into the tree. <a href="#a08bc1827223c57790bbf396cd60e3317"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8h.html#afcbfcbca8b25fe867ea8b7b0deeaef9c">bt_delete</a> (<a class="el" href="structbt__tree.html">bt_tree</a> *tree, void *data, int free_contents)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes a node for the tree. <a href="#afcbfcbca8b25fe867ea8b7b0deeaef9c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="bt_8h.html#a4f6d976b294d6f4e0968e5d4e75a7d31">bt_find</a> (<a class="el" href="structbt__tree.html">bt_tree</a> *tree, void *data)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds and returns the data from a node containing the given data. <a href="#a4f6d976b294d6f4e0968e5d4e75a7d31"></a><br/></td></tr>
</table>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="a8a7bf1216efb8b05f20a020acd705f75"></a><!-- doxytag: member="bt.h::bt_compare_func" ref="a8a7bf1216efb8b05f20a020acd705f75" args=")(void *, void *)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef int(* <a class="el" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75">bt_compare_func</a>)(void *, void *)</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>A function pointer for a comparison function. </p>
+
+<p>Definition at line <a class="el" href="bt_8h_source.html#l00031">31</a> of file <a class="el" href="bt_8h_source.html">bt.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0add8fba825be5e3f912ab7323c1adaa"></a><!-- doxytag: member="bt.h::bt_node" ref="a0add8fba825be5e3f912ab7323c1adaa" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct <a class="el" href="structbt__node.html">bt_node</a> <a class="el" href="structbt__node.html">bt_node</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>A binary tree node. </p>
+
+</div>
+</div>
+<a class="anchor" id="acc5ee766f7f379b1d2fde9e7468d7e2a"></a><!-- doxytag: member="bt.h::bt_tree" ref="acc5ee766f7f379b1d2fde9e7468d7e2a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct <a class="el" href="structbt__tree.html">bt_tree</a> <a class="el" href="structbt__tree.html">bt_tree</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>A binary tree. </p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a89f764721b6fb39787a79a597a7759b1"></a><!-- doxytag: member="bt.h::bt_compare_ptr" ref="a89f764721b6fb39787a79a597a7759b1" args="(void *obj1, void *obj2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int bt_compare_ptr </td>
+ <td>(</td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>obj1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>obj2</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Compares the value of two pointers. </p>
+<p>This function takes two pointers and compares their values returning an integral value representing the result of the comparison. A return value of zero indicates the pointers are equal. A positive value indicates that obj2 is greater than obj1 and a negative value indicates the opposite.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">obj1</td><td>The first object to be compared. </td></tr>
+ <tr><td class="paramname">obj2</td><td>The second object to be compared.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The result of the comparison. </dd></dl>
+
+<p>Definition at line <a class="el" href="bt_8c_source.html#l00039">39</a> of file <a class="el" href="bt_8c_source.html">bt.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afcbfcbca8b25fe867ea8b7b0deeaef9c"></a><!-- doxytag: member="bt.h::bt_delete" ref="afcbfcbca8b25fe867ea8b7b0deeaef9c" args="(bt_tree *tree, void *data, int free_contents)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void bt_delete </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structbt__tree.html">bt_tree</a> * </td>
+ <td class="paramname"><em>tree</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>free_contents</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Deletes a node for the tree. </p>
+<p>This function uses the tree's compare function to search the tree for a node containing the given data. If a node containing the data is found then the node is freed otherwise no deletion is performed. If free_contents is passed a non-zero value then the contents pointer of the node is also freed.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">tree</td><td>The tree from which the node will be deleted. </td></tr>
+ <tr><td class="paramname">data</td><td>The data to search for in the tree. </td></tr>
+ <tr><td class="paramname">free_contents</td><td>Determines whether the contents pointer will be freed. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a4f6d976b294d6f4e0968e5d4e75a7d31"></a><!-- doxytag: member="bt.h::bt_find" ref="a4f6d976b294d6f4e0968e5d4e75a7d31" args="(bt_tree *tree, void *data)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* bt_find </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structbt__tree.html">bt_tree</a> * </td>
+ <td class="paramname"><em>tree</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>data</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Finds and returns the data from a node containing the given data. </p>
+<p>This function uses the tree's compare function to search the tree for a node containing the given data. If a node containing the given data is found then the pointer to the contents of the node is returned. Otherwise a null pointer is returned.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">tree</td><td>The tree to be searched. </td></tr>
+ <tr><td class="paramname">data</td><td>The data to be searched for.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the found data. </dd></dl>
+
+<p>Definition at line <a class="el" href="bt_8c_source.html#l00054">54</a> of file <a class="el" href="bt_8c_source.html">bt.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa24dd75e23a367ec824d99793c2ba1bb"></a><!-- doxytag: member="bt.h::bt_free" ref="aa24dd75e23a367ec824d99793c2ba1bb" args="(bt_tree *tree, int free_contents)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void bt_free </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structbt__tree.html">bt_tree</a> * </td>
+ <td class="paramname"><em>tree</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>free_contents</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Frees the memory allocated for all nodes of a tree. </p>
+<p>This function frees all memory associated with the given tree. If free_contents has a non-zero value then the contents pointer of each node will aslo be freed.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">tree</td><td>The tree to be freed. </td></tr>
+ <tr><td class="paramname">free_contents</td><td>Determines whether the contents pointers will be freed. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="bt_8c_source.html#l00034">34</a> of file <a class="el" href="bt_8c_source.html">bt.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a08bc1827223c57790bbf396cd60e3317"></a><!-- doxytag: member="bt.h::bt_insert" ref="a08bc1827223c57790bbf396cd60e3317" args="(bt_tree *tree, void *data)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void bt_insert </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structbt__tree.html">bt_tree</a> * </td>
+ <td class="paramname"><em>tree</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>data</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Inserts a new node into the tree. </p>
+<p>This function uses the tree's compare function to traverse the tree until an existing node with the given data is found or until a leaf node is reached. If a node exists containing the given data then no insertion is performed. If a leaf node is reached then the a new leaf node is created and set as the left or right child of that leaf node.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">tree</td><td>The tree in which the node will be inserted. </td></tr>
+ <tr><td class="paramname">data</td><td>The data that the new node will contain. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="bt_8c_source.html#l00044">44</a> of file <a class="el" href="bt_8c_source.html">bt.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3682c3b6d0e0d70a0280de485ca687cc"></a><!-- doxytag: member="bt.h::bt_new" ref="a3682c3b6d0e0d70a0280de485ca687cc" args="(bt_compare_func compare)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structbt__tree.html">bt_tree</a>* bt_new </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75">bt_compare_func</a> </td>
+ <td class="paramname"><em>compare</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a new empty binary tree. </p>
+<p>This function creates a new empty binary search tree with the given comparison function. The comparison function will be used during searching, insertions, and deletions, to find and traverse the tree.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">compare</td><td>The function to use for comparing items in the tree.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly created tree. </dd></dl>
+
+<p>Definition at line <a class="el" href="bt_8c_source.html#l00029">29</a> of file <a class="el" href="bt_8c_source.html">bt.c</a>.</p>
+
+</div>
+</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="bt_8h.html">bt.h</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
--- /dev/null
+<map id="G" name="G">
+<area shape="rect" id="node3" href="$bt_8c.html" title="src/trees/binary/bt.c" alt="" coords="5,83,144,112"/>
+</map>
--- /dev/null
+0ad7ff5b2f75f3c4fd634b13a1a3332b
\ No newline at end of file
<h1>src/trees/binary/bt.h</h1> </div>
</div>
<div class="contents">
-<a href="bt_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"></pre></div></div>
+<a href="bt_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span>
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2012, Michael D. Lowis</span>
+<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"> *</span>
+<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
+<a name="l00009"></a>00009 <span class="comment"> * this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice,</span>
+<a name="l00012"></a>00012 <span class="comment"> * this list of conditions and the following disclaimer in the documentation</span>
+<a name="l00013"></a>00013 <span class="comment"> * and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"> *</span>
+<a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span>
+<a name="l00016"></a>00016 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span>
+<a name="l00019"></a>00019 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00020"></a>00020 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00021"></a>00021 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00022"></a>00022 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00023"></a>00023 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00024"></a>00024 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
+<a name="l00025"></a>00025 <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00026"></a>00026 <span class="comment"> *****************************************************************************/</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#ifndef BT_H</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#define BT_H</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span>
+<a name="l00031"></a><a class="code" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75">00031</a> <span class="keyword">typedef</span> int (* <a class="code" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75" title="A function pointer for a comparison function.">bt_compare_func</a>) (<span class="keywordtype">void</span>*,<span class="keywordtype">void</span>*);
+<a name="l00032"></a>00032
+<a name="l00034"></a><a class="code" href="structbt__node.html">00034</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structbt__node.html" title="A binary tree node.">bt_node</a>
+<a name="l00035"></a>00035 {
+<a name="l00037"></a><a class="code" href="structbt__node.html#a9e0d7c8bb9ca7bb4b69bd4af9ca1440c">00037</a> <span class="keywordtype">void</span>* <a class="code" href="structbt__node.html#a9e0d7c8bb9ca7bb4b69bd4af9ca1440c" title="The contents of the tree node.">contents</a>;
+<a name="l00039"></a><a class="code" href="structbt__node.html#a689e6fb3fde56bc337d5234b0d7f8e80">00039</a> <span class="keyword">struct </span><a class="code" href="structbt__node.html" title="A binary tree node.">bt_node</a>* <a class="code" href="structbt__node.html#a689e6fb3fde56bc337d5234b0d7f8e80" title="The left child of the tree node.">left</a>;
+<a name="l00041"></a><a class="code" href="structbt__node.html#aefe84db5b1f24953aba4743200b24898">00041</a> <span class="keyword">struct </span><a class="code" href="structbt__node.html" title="A binary tree node.">bt_node</a>* <a class="code" href="structbt__node.html#aefe84db5b1f24953aba4743200b24898" title="the right child of the tree node.">right</a>;
+<a name="l00042"></a>00042 } <a class="code" href="bt_8h.html#a0add8fba825be5e3f912ab7323c1adaa" title="A binary tree node.">bt_node</a>;
+<a name="l00043"></a>00043
+<a name="l00045"></a><a class="code" href="structbt__tree.html">00045</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structbt__tree.html" title="A binary tree.">bt_tree</a>
+<a name="l00046"></a>00046 {
+<a name="l00048"></a><a class="code" href="structbt__tree.html#ae428a77981f3b9f27f959b78ed468db7">00048</a> <a class="code" href="structbt__node.html" title="A binary tree node.">bt_node</a>* <a class="code" href="structbt__tree.html#ae428a77981f3b9f27f959b78ed468db7" title="The root of the binary tree.">root</a>;
+<a name="l00050"></a><a class="code" href="structbt__tree.html#a7ac2a5e50551c1a10b1bf3884cd12af5">00050</a> <a class="code" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75" title="A function pointer for a comparison function.">bt_compare_func</a> <a class="code" href="structbt__tree.html#a7ac2a5e50551c1a10b1bf3884cd12af5" title="The function used to compare data.">compare</a>;
+<a name="l00051"></a>00051 } <a class="code" href="bt_8h.html#acc5ee766f7f379b1d2fde9e7468d7e2a" title="A binary tree.">bt_tree</a>;
+<a name="l00052"></a>00052
+<a name="l00064"></a>00064 <a class="code" href="structbt__tree.html" title="A binary tree.">bt_tree</a>* <a class="code" href="bt_8c.html#a3682c3b6d0e0d70a0280de485ca687cc" title="Creates a new empty binary tree.">bt_new</a>(<a class="code" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75" title="A function pointer for a comparison function.">bt_compare_func</a> compare);
+<a name="l00065"></a>00065
+<a name="l00076"></a>00076 <span class="keywordtype">void</span> <a class="code" href="bt_8c.html#aa24dd75e23a367ec824d99793c2ba1bb" title="Frees the memory allocated for all nodes of a tree.">bt_free</a>(<a class="code" href="structbt__tree.html" title="A binary tree.">bt_tree</a>* tree, <span class="keywordtype">int</span> free_contents);
+<a name="l00077"></a>00077
+<a name="l00091"></a>00091 <span class="keywordtype">int</span> <a class="code" href="bt_8c.html#a89f764721b6fb39787a79a597a7759b1" title="Compares the value of two pointers.">bt_compare_ptr</a>(<span class="keywordtype">void</span>* obj1, <span class="keywordtype">void</span>* obj2);
+<a name="l00092"></a>00092
+<a name="l00105"></a>00105 <span class="keywordtype">void</span> <a class="code" href="bt_8c.html#a08bc1827223c57790bbf396cd60e3317" title="Inserts a new node into the tree.">bt_insert</a>(<a class="code" href="structbt__tree.html" title="A binary tree.">bt_tree</a>* tree, <span class="keywordtype">void</span>* data);
+<a name="l00106"></a>00106
+<a name="l00119"></a>00119 <span class="keywordtype">void</span> <a class="code" href="bt_8c.html#ad23029f65222ccc60e026a60e124cbb6">bt_delete</a>(<a class="code" href="structbt__tree.html" title="A binary tree.">bt_tree</a>* tree, <span class="keywordtype">void</span>* data, <span class="keywordtype">int</span> free_contents);
+<a name="l00120"></a>00120
+<a name="l00134"></a>00134 <span class="keywordtype">void</span>* <a class="code" href="bt_8c.html#a4f6d976b294d6f4e0968e5d4e75a7d31" title="Finds and returns the data from a node containing the given data.">bt_find</a>(<a class="code" href="structbt__tree.html" title="A binary tree.">bt_tree</a>* tree, <span class="keywordtype">void</span>* data);
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 <span class="preprocessor">#endif</span>
+</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="bt_8h.html">bt.h</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<h1>Class Index</h1> </div>
</div>
<div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_H">H</a> | <a class="qindex" href="#letter_N">N</a></div>
+<div class="qindex"><a class="qindex" href="#letter_B">B</a> | <a class="qindex" href="#letter_H">H</a> | <a class="qindex" href="#letter_S">S</a></div>
<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
-<tr><td><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  H  </div></td></tr></table>
-</td><td><a class="el" href="structht__table.html">ht_table</a>   </td><td><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  N  </div></td></tr></table>
-</td><td><a class="el" href="structnode.html">node</a>   </td></tr></table><div class="qindex"><a class="qindex" href="#letter_H">H</a> | <a class="qindex" href="#letter_N">N</a></div>
+<tr><td><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  B  </div></td></tr></table>
+</td><td><a class="el" href="structbt__tree.html">bt_tree</a>   </td><td><a class="el" href="structht__node.html">ht_node</a>   </td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  S  </div></td></tr></table>
+</td><td><a class="el" href="structsll__node.html">sll_node</a>   </td></tr><tr><td><a class="el" href="structbt__node.html">bt_node</a>   </td><td><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  H  </div></td></tr></table>
+</td><td><a class="el" href="structht__table.html">ht_table</a>   </td></tr></table><div class="qindex"><a class="qindex" href="#letter_B">B</a> | <a class="qindex" href="#letter_H">H</a> | <a class="qindex" href="#letter_S">S</a></div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dll_8c.html">dll.c</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<h1>src/lists/double_link/dll.c</h1> </div>
</div>
<div class="contents">
-<a href="dll_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"></pre></div></div>
+<a href="dll_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span>
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2012, Michael D. Lowis</span>
+<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"> *</span>
+<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
+<a name="l00009"></a>00009 <span class="comment"> * this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice,</span>
+<a name="l00012"></a>00012 <span class="comment"> * this list of conditions and the following disclaimer in the documentation</span>
+<a name="l00013"></a>00013 <span class="comment"> * and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"> *</span>
+<a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span>
+<a name="l00016"></a>00016 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span>
+<a name="l00019"></a>00019 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00020"></a>00020 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00021"></a>00021 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00022"></a>00022 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00023"></a>00023 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00024"></a>00024 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
+<a name="l00025"></a>00025 <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00026"></a>00026 <span class="comment"> *****************************************************************************/</span>
+<a name="l00027"></a>00027
+</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dll_8c.html">dll.c</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:03 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dll_8h.html">dll.h</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<h1>src/lists/double_link/dll.h</h1> </div>
</div>
<div class="contents">
-<a href="dll_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"></pre></div></div>
+<a href="dll_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span>
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2012, Michael D. Lowis</span>
+<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"> *</span>
+<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
+<a name="l00009"></a>00009 <span class="comment"> * this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice,</span>
+<a name="l00012"></a>00012 <span class="comment"> * this list of conditions and the following disclaimer in the documentation</span>
+<a name="l00013"></a>00013 <span class="comment"> * and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"> *</span>
+<a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span>
+<a name="l00016"></a>00016 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span>
+<a name="l00019"></a>00019 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00020"></a>00020 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00021"></a>00021 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00022"></a>00022 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00023"></a>00023 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00024"></a>00024 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
+<a name="l00025"></a>00025 <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00026"></a>00026 <span class="comment"> *****************************************************************************/</span>
+<a name="l00027"></a>00027
+</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dll_8h.html">dll.h</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:03 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<div id="doc-content">
<div class="contents">
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div><ul>
+<li>compare
+: <a class="el" href="structbt__tree.html#a7ac2a5e50551c1a10b1bf3884cd12af5">bt_tree</a>
+</li>
<li>contents
-: <a class="el" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">node</a>
+: <a class="el" href="structbt__node.html#a9e0d7c8bb9ca7bb4b69bd4af9ca1440c">bt_node</a>
+, <a class="el" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c">sll_node</a>
</li>
<li>hash_func
: <a class="el" href="structht__table.html#abe53fe8d261dea812255944769d22f45">ht_table</a>
</li>
<li>key
-: <a class="el" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b">node</a>
+: <a class="el" href="structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b">ht_node</a>
+</li>
+<li>left
+: <a class="el" href="structbt__node.html#a689e6fb3fde56bc337d5234b0d7f8e80">bt_node</a>
</li>
<li>next
-: <a class="el" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063">node</a>
+: <a class="el" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e">ht_node</a>
+, <a class="el" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826">sll_node</a>
+</li>
+<li>right
+: <a class="el" href="structbt__node.html#aefe84db5b1f24953aba4743200b24898">bt_node</a>
+</li>
+<li>root
+: <a class="el" href="structbt__tree.html#ae428a77981f3b9f27f959b78ed468db7">bt_tree</a>
</li>
<li>size
: <a class="el" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4">ht_table</a>
: <a class="el" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc">ht_table</a>
</li>
<li>val
-: <a class="el" href="structnode.html#a3866f55c05d50265b730d8cdeec0a1f8">node</a>
+: <a class="el" href="structht__node.html#a0e050852d00670316f005463a7d749f8">ht_node</a>
</li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<div id="doc-content">
<div class="contents">
 <ul>
+<li>compare
+: <a class="el" href="structbt__tree.html#a7ac2a5e50551c1a10b1bf3884cd12af5">bt_tree</a>
+</li>
<li>contents
-: <a class="el" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">node</a>
+: <a class="el" href="structbt__node.html#a9e0d7c8bb9ca7bb4b69bd4af9ca1440c">bt_node</a>
+, <a class="el" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c">sll_node</a>
</li>
<li>hash_func
: <a class="el" href="structht__table.html#abe53fe8d261dea812255944769d22f45">ht_table</a>
</li>
<li>key
-: <a class="el" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b">node</a>
+: <a class="el" href="structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b">ht_node</a>
+</li>
+<li>left
+: <a class="el" href="structbt__node.html#a689e6fb3fde56bc337d5234b0d7f8e80">bt_node</a>
</li>
<li>next
-: <a class="el" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063">node</a>
+: <a class="el" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e">ht_node</a>
+, <a class="el" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826">sll_node</a>
+</li>
+<li>right
+: <a class="el" href="structbt__node.html#aefe84db5b1f24953aba4743200b24898">bt_node</a>
+</li>
+<li>root
+: <a class="el" href="structbt__tree.html#ae428a77981f3b9f27f959b78ed468db7">bt_tree</a>
</li>
<li>size
: <a class="el" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4">ht_table</a>
: <a class="el" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc">ht_table</a>
</li>
<li>val
-: <a class="el" href="structnode.html#a3866f55c05d50265b730d8cdeec0a1f8">node</a>
+: <a class="el" href="structht__node.html#a0e050852d00670316f005463a7d749f8">ht_node</a>
</li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
+ <li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
</ul>
<div class="contents">
<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>bt_compare_func
+: <a class="el" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75">bt.h</a>
+</li>
+<li>bt_compare_ptr()
+: <a class="el" href="bt_8c.html#a89f764721b6fb39787a79a597a7759b1">bt.c</a>
+, <a class="el" href="bt_8h.html#a89f764721b6fb39787a79a597a7759b1">bt.h</a>
+</li>
+<li>bt_delete()
+: <a class="el" href="bt_8c.html#ad23029f65222ccc60e026a60e124cbb6">bt.c</a>
+, <a class="el" href="bt_8h.html#afcbfcbca8b25fe867ea8b7b0deeaef9c">bt.h</a>
+</li>
+<li>bt_find()
+: <a class="el" href="bt_8c.html#a4f6d976b294d6f4e0968e5d4e75a7d31">bt.c</a>
+, <a class="el" href="bt_8h.html#a4f6d976b294d6f4e0968e5d4e75a7d31">bt.h</a>
+</li>
+<li>bt_free()
+: <a class="el" href="bt_8c.html#aa24dd75e23a367ec824d99793c2ba1bb">bt.c</a>
+, <a class="el" href="bt_8h.html#aa24dd75e23a367ec824d99793c2ba1bb">bt.h</a>
+</li>
+<li>bt_insert()
+: <a class="el" href="bt_8c.html#a08bc1827223c57790bbf396cd60e3317">bt.c</a>
+, <a class="el" href="bt_8h.html#a08bc1827223c57790bbf396cd60e3317">bt.h</a>
+</li>
+<li>bt_new()
+: <a class="el" href="bt_8h.html#a3682c3b6d0e0d70a0280de485ca687cc">bt.h</a>
+, <a class="el" href="bt_8c.html#a3682c3b6d0e0d70a0280de485ca687cc">bt.c</a>
+</li>
+<li>bt_node
+: <a class="el" href="bt_8h.html#a0add8fba825be5e3f912ab7323c1adaa">bt.h</a>
+</li>
+<li>bt_tree
+: <a class="el" href="bt_8h.html#acc5ee766f7f379b1d2fde9e7468d7e2a">bt.h</a>
+</li>
+</ul>
+
+
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>ht_delete()
-: <a class="el" href="ht_8c.html#abb67271f276fde7155cbbe63566d97c4">ht.c</a>
+: <a class="el" href="ht_8c.html#a81a813f472a9b689032704fca76b3ce8">ht.c</a>
, <a class="el" href="ht_8h.html#a81a813f472a9b689032704fca76b3ce8">ht.h</a>
</li>
<li>ht_free()
: <a class="el" href="ht_8h.html#a96de71bf3880ed0a879f60b6e5254803">ht.h</a>
-, <a class="el" href="ht_8c.html#a36132061ce1dfb439cde8c8caa2b63bc">ht.c</a>
+, <a class="el" href="ht_8c.html#a96de71bf3880ed0a879f60b6e5254803">ht.c</a>
</li>
<li>ht_get()
-: <a class="el" href="ht_8c.html#a3d4217bc8aafc5cf0e37dda811afc3c5">ht.c</a>
+: <a class="el" href="ht_8c.html#a5bc0ba0d31b944797e17a96372bce33e">ht.c</a>
, <a class="el" href="ht_8h.html#a5bc0ba0d31b944797e17a96372bce33e">ht.h</a>
</li>
<li>ht_hash_func
, <a class="el" href="ht_8h.html#a0a3e03a29413673acd8899d250cd0844">ht.h</a>
</li>
<li>ht_node
-: <a class="el" href="ht_8h.html#a27a2fadaf99569e4b5c18dbd0b0a8160">ht.h</a>
+: <a class="el" href="ht_8h.html#a3b70269a378f408bce2ae501e7ed1205">ht.h</a>
</li>
<li>ht_put()
-: <a class="el" href="ht_8c.html#a41caab4f2767cdd00399b2fb6f6ec424">ht.c</a>
+: <a class="el" href="ht_8c.html#a8c17c7288d2f510dd5c091cccc6dd056">ht.c</a>
, <a class="el" href="ht_8h.html#a8c17c7288d2f510dd5c091cccc6dd056">ht.h</a>
</li>
<li>ht_resize()
: <a class="el" href="ht_8h.html#ad9cac6da8b459d5960079b0d95489960">ht.h</a>
-, <a class="el" href="ht_8c.html#a4c967f60d2129911b4311d9f4c7f3424">ht.c</a>
+, <a class="el" href="ht_8c.html#ad9cac6da8b459d5960079b0d95489960">ht.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
-<li>sll_add()
-: <a class="el" href="sll_8c.html#a0751beeb21d1540c9ddcd5e01964e23e">sll.c</a>
-, <a class="el" href="sll_8h.html#a0751beeb21d1540c9ddcd5e01964e23e">sll.h</a>
+<li>sll_back()
+: <a class="el" href="sll_8c.html#a78ef5151212d47bb63f2fd93453283ed">sll.c</a>
+, <a class="el" href="sll_8h.html#a78ef5151212d47bb63f2fd93453283ed">sll.h</a>
</li>
<li>sll_delete()
: <a class="el" href="sll_8h.html#afd494f171c24981f0d7a007841f21cfe">sll.h</a>
: <a class="el" href="sll_8c.html#a7373cc6bac0876b330da73722e24910b">sll.c</a>
, <a class="el" href="sll_8h.html#a7373cc6bac0876b330da73722e24910b">sll.h</a>
</li>
-<li>sll_get()
-: <a class="el" href="sll_8h.html#aaf7e4557200dec55dec679f63de2b4d1">sll.h</a>
-, <a class="el" href="sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1">sll.c</a>
+<li>sll_front()
+: <a class="el" href="sll_8h.html#abe6fe02fbfcbf1d647ff94295b855e7e">sll.h</a>
+, <a class="el" href="sll_8c.html#abe6fe02fbfcbf1d647ff94295b855e7e">sll.c</a>
+</li>
+<li>sll_index()
+: <a class="el" href="sll_8c.html#a0582f263482ead73d53b018978513540">sll.c</a>
+, <a class="el" href="sll_8h.html#a0582f263482ead73d53b018978513540">sll.h</a>
</li>
<li>sll_insert()
: <a class="el" href="sll_8c.html#a66769edc21579f71972ac90de6da4a9f">sll.c</a>
, <a class="el" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f">sll.h</a>
</li>
-<li>sll_last()
-: <a class="el" href="sll_8c.html#af7327f24d1900d495c1bf914a592b631">sll.c</a>
-, <a class="el" href="sll_8h.html#af7327f24d1900d495c1bf914a592b631">sll.h</a>
-</li>
<li>sll_length()
-: <a class="el" href="sll_8h.html#af5f6589df6d0ef48ed6f57ac5527ddfe">sll.h</a>
-, <a class="el" href="sll_8c.html#af5f6589df6d0ef48ed6f57ac5527ddfe">sll.c</a>
+: <a class="el" href="sll_8c.html#af5f6589df6d0ef48ed6f57ac5527ddfe">sll.c</a>
+, <a class="el" href="sll_8h.html#af5f6589df6d0ef48ed6f57ac5527ddfe">sll.h</a>
</li>
<li>sll_new()
-: <a class="el" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7">sll.c</a>
-, <a class="el" href="sll_8h.html#a471151d11dc385e3364c9a38b19ecba7">sll.h</a>
+: <a class="el" href="sll_8h.html#a471151d11dc385e3364c9a38b19ecba7">sll.h</a>
+, <a class="el" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7">sll.c</a>
</li>
<li>sll_node
-: <a class="el" href="sll_8h.html#a74030fe22c7f9308540aee0c4259b111">sll.h</a>
+: <a class="el" href="sll_8h.html#a168d63554ec6362ceecf64acc3e15bce">sll.h</a>
+</li>
+<li>sll_pop_back()
+: <a class="el" href="sll_8c.html#af72e93329186ac936d2bf6f544aa1f6b">sll.c</a>
+, <a class="el" href="sll_8h.html#af72e93329186ac936d2bf6f544aa1f6b">sll.h</a>
+</li>
+<li>sll_pop_front()
+: <a class="el" href="sll_8c.html#a1588e5a1f90852ee48403d5313d64269">sll.c</a>
+, <a class="el" href="sll_8h.html#a1588e5a1f90852ee48403d5313d64269">sll.h</a>
+</li>
+<li>sll_push_back()
+: <a class="el" href="sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0">sll.h</a>
+, <a class="el" href="sll_8c.html#a19ad0a86a87451a3ab68ad6d18c3e3e0">sll.c</a>
+</li>
+<li>sll_push_front()
+: <a class="el" href="sll_8h.html#acfe3ebc296fe75f1d0ee21195dd7b9bf">sll.h</a>
+, <a class="el" href="sll_8c.html#acfe3ebc296fe75f1d0ee21195dd7b9bf">sll.c</a>
</li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
</ul>
</div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index_b"><span>b</span></a></li>
+ <li><a href="#index_h"><span>h</span></a></li>
+ <li><a href="#index_s"><span>s</span></a></li>
+ </ul>
+ </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
</script>
<div id="doc-content">
<div class="contents">
- <ul>
+ 
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>bt_compare_ptr()
+: <a class="el" href="bt_8c.html#a89f764721b6fb39787a79a597a7759b1">bt.c</a>
+, <a class="el" href="bt_8h.html#a89f764721b6fb39787a79a597a7759b1">bt.h</a>
+</li>
+<li>bt_delete()
+: <a class="el" href="bt_8h.html#afcbfcbca8b25fe867ea8b7b0deeaef9c">bt.h</a>
+, <a class="el" href="bt_8c.html#ad23029f65222ccc60e026a60e124cbb6">bt.c</a>
+</li>
+<li>bt_find()
+: <a class="el" href="bt_8c.html#a4f6d976b294d6f4e0968e5d4e75a7d31">bt.c</a>
+, <a class="el" href="bt_8h.html#a4f6d976b294d6f4e0968e5d4e75a7d31">bt.h</a>
+</li>
+<li>bt_free()
+: <a class="el" href="bt_8h.html#aa24dd75e23a367ec824d99793c2ba1bb">bt.h</a>
+, <a class="el" href="bt_8c.html#aa24dd75e23a367ec824d99793c2ba1bb">bt.c</a>
+</li>
+<li>bt_insert()
+: <a class="el" href="bt_8h.html#a08bc1827223c57790bbf396cd60e3317">bt.h</a>
+, <a class="el" href="bt_8c.html#a08bc1827223c57790bbf396cd60e3317">bt.c</a>
+</li>
+<li>bt_new()
+: <a class="el" href="bt_8c.html#a3682c3b6d0e0d70a0280de485ca687cc">bt.c</a>
+, <a class="el" href="bt_8h.html#a3682c3b6d0e0d70a0280de485ca687cc">bt.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>ht_delete()
-: <a class="el" href="ht_8c.html#abb67271f276fde7155cbbe63566d97c4">ht.c</a>
+: <a class="el" href="ht_8c.html#a81a813f472a9b689032704fca76b3ce8">ht.c</a>
, <a class="el" href="ht_8h.html#a81a813f472a9b689032704fca76b3ce8">ht.h</a>
</li>
<li>ht_free()
: <a class="el" href="ht_8h.html#a96de71bf3880ed0a879f60b6e5254803">ht.h</a>
-, <a class="el" href="ht_8c.html#a36132061ce1dfb439cde8c8caa2b63bc">ht.c</a>
+, <a class="el" href="ht_8c.html#a96de71bf3880ed0a879f60b6e5254803">ht.c</a>
</li>
<li>ht_get()
-: <a class="el" href="ht_8c.html#a3d4217bc8aafc5cf0e37dda811afc3c5">ht.c</a>
+: <a class="el" href="ht_8c.html#a5bc0ba0d31b944797e17a96372bce33e">ht.c</a>
, <a class="el" href="ht_8h.html#a5bc0ba0d31b944797e17a96372bce33e">ht.h</a>
</li>
<li>ht_hash_string()
, <a class="el" href="ht_8h.html#a0a3e03a29413673acd8899d250cd0844">ht.h</a>
</li>
<li>ht_put()
-: <a class="el" href="ht_8c.html#a41caab4f2767cdd00399b2fb6f6ec424">ht.c</a>
+: <a class="el" href="ht_8c.html#a8c17c7288d2f510dd5c091cccc6dd056">ht.c</a>
, <a class="el" href="ht_8h.html#a8c17c7288d2f510dd5c091cccc6dd056">ht.h</a>
</li>
<li>ht_resize()
: <a class="el" href="ht_8h.html#ad9cac6da8b459d5960079b0d95489960">ht.h</a>
-, <a class="el" href="ht_8c.html#a4c967f60d2129911b4311d9f4c7f3424">ht.c</a>
+, <a class="el" href="ht_8c.html#ad9cac6da8b459d5960079b0d95489960">ht.c</a>
</li>
-<li>sll_add()
-: <a class="el" href="sll_8c.html#a0751beeb21d1540c9ddcd5e01964e23e">sll.c</a>
-, <a class="el" href="sll_8h.html#a0751beeb21d1540c9ddcd5e01964e23e">sll.h</a>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>sll_back()
+: <a class="el" href="sll_8c.html#a78ef5151212d47bb63f2fd93453283ed">sll.c</a>
+, <a class="el" href="sll_8h.html#a78ef5151212d47bb63f2fd93453283ed">sll.h</a>
</li>
<li>sll_delete()
: <a class="el" href="sll_8h.html#afd494f171c24981f0d7a007841f21cfe">sll.h</a>
: <a class="el" href="sll_8c.html#a7373cc6bac0876b330da73722e24910b">sll.c</a>
, <a class="el" href="sll_8h.html#a7373cc6bac0876b330da73722e24910b">sll.h</a>
</li>
-<li>sll_get()
-: <a class="el" href="sll_8h.html#aaf7e4557200dec55dec679f63de2b4d1">sll.h</a>
-, <a class="el" href="sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1">sll.c</a>
+<li>sll_front()
+: <a class="el" href="sll_8h.html#abe6fe02fbfcbf1d647ff94295b855e7e">sll.h</a>
+, <a class="el" href="sll_8c.html#abe6fe02fbfcbf1d647ff94295b855e7e">sll.c</a>
+</li>
+<li>sll_index()
+: <a class="el" href="sll_8c.html#a0582f263482ead73d53b018978513540">sll.c</a>
+, <a class="el" href="sll_8h.html#a0582f263482ead73d53b018978513540">sll.h</a>
</li>
<li>sll_insert()
: <a class="el" href="sll_8c.html#a66769edc21579f71972ac90de6da4a9f">sll.c</a>
, <a class="el" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f">sll.h</a>
</li>
-<li>sll_last()
-: <a class="el" href="sll_8c.html#af7327f24d1900d495c1bf914a592b631">sll.c</a>
-, <a class="el" href="sll_8h.html#af7327f24d1900d495c1bf914a592b631">sll.h</a>
-</li>
<li>sll_length()
: <a class="el" href="sll_8c.html#af5f6589df6d0ef48ed6f57ac5527ddfe">sll.c</a>
, <a class="el" href="sll_8h.html#af5f6589df6d0ef48ed6f57ac5527ddfe">sll.h</a>
: <a class="el" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7">sll.c</a>
, <a class="el" href="sll_8h.html#a471151d11dc385e3364c9a38b19ecba7">sll.h</a>
</li>
+<li>sll_pop_back()
+: <a class="el" href="sll_8c.html#af72e93329186ac936d2bf6f544aa1f6b">sll.c</a>
+, <a class="el" href="sll_8h.html#af72e93329186ac936d2bf6f544aa1f6b">sll.h</a>
+</li>
+<li>sll_pop_front()
+: <a class="el" href="sll_8c.html#a1588e5a1f90852ee48403d5313d64269">sll.c</a>
+, <a class="el" href="sll_8h.html#a1588e5a1f90852ee48403d5313d64269">sll.h</a>
+</li>
+<li>sll_push_back()
+: <a class="el" href="sll_8c.html#a19ad0a86a87451a3ab68ad6d18c3e3e0">sll.c</a>
+, <a class="el" href="sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0">sll.h</a>
+</li>
+<li>sll_push_front()
+: <a class="el" href="sll_8h.html#acfe3ebc296fe75f1d0ee21195dd7b9bf">sll.h</a>
+, <a class="el" href="sll_8c.html#acfe3ebc296fe75f1d0ee21195dd7b9bf">sll.c</a>
+</li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<div id="doc-content">
<div class="contents">
 <ul>
+<li>bt_compare_func
+: <a class="el" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75">bt.h</a>
+</li>
+<li>bt_node
+: <a class="el" href="bt_8h.html#a0add8fba825be5e3f912ab7323c1adaa">bt.h</a>
+</li>
+<li>bt_tree
+: <a class="el" href="bt_8h.html#acc5ee766f7f379b1d2fde9e7468d7e2a">bt.h</a>
+</li>
<li>ht_hash_func
: <a class="el" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf">ht.h</a>
</li>
<li>ht_node
-: <a class="el" href="ht_8h.html#a27a2fadaf99569e4b5c18dbd0b0a8160">ht.h</a>
+: <a class="el" href="ht_8h.html#a3b70269a378f408bce2ae501e7ed1205">ht.h</a>
</li>
<li>sll_node
-: <a class="el" href="sll_8h.html#a74030fe22c7f9308540aee0c4259b111">sll.h</a>
+: <a class="el" href="sll_8h.html#a168d63554ec6362ceecf64acc3e15bce">sll.h</a>
</li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Takes a string key value and returns it's hashed value. <a href="#a278174a0154a10b8b10b23937ca4c721"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structht__table.html">ht_table</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8c.html#a0a3e03a29413673acd8899d250cd0844">ht_new</a> (unsigned int size, <a class="el" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf">ht_hash_func</a> fn)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new hash table of the given size using the provided hash function or the built-in string hashing function otherwise. <a href="#a0a3e03a29413673acd8899d250cd0844"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8c.html#a36132061ce1dfb439cde8c8caa2b63bc">ht_free</a> (<a class="el" href="structht__table.html">ht_table</a> *table)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8c.html#a41caab4f2767cdd00399b2fb6f6ec424">ht_put</a> (<a class="el" href="structht__table.html">ht_table</a> *table, void *key, void *val)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Inserts a key/value pair into the provided table. <a href="#a41caab4f2767cdd00399b2fb6f6ec424"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8c.html#a3d4217bc8aafc5cf0e37dda811afc3c5">ht_get</a> (<a class="el" href="structht__table.html">ht_table</a> *table, char *key)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8c.html#abb67271f276fde7155cbbe63566d97c4">ht_delete</a> (<a class="el" href="structht__table.html">ht_table</a> *table, char *key)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8c.html#a4c967f60d2129911b4311d9f4c7f3424">ht_resize</a> (<a class="el" href="structht__table.html">ht_table</a> *table, unsigned int size)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Resizes the underlying table used for storing key/value pairs. <a href="#a4c967f60d2129911b4311d9f4c7f3424"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8c.html#a96de71bf3880ed0a879f60b6e5254803">ht_free</a> (<a class="el" href="structht__table.html">ht_table</a> *table, int free_key, int free_value)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees all memory used by the provided hash table. <a href="#a96de71bf3880ed0a879f60b6e5254803"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8c.html#a8c17c7288d2f510dd5c091cccc6dd056">ht_put</a> (<a class="el" href="structht__table.html">ht_table</a> *table, void *key, void *val)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Inserts a key/value pair into the provided table. <a href="#a8c17c7288d2f510dd5c091cccc6dd056"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8c.html#a5bc0ba0d31b944797e17a96372bce33e">ht_get</a> (<a class="el" href="structht__table.html">ht_table</a> *table, void *key)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieves a value from the provided table. <a href="#a5bc0ba0d31b944797e17a96372bce33e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8c.html#a81a813f472a9b689032704fca76b3ce8">ht_delete</a> (<a class="el" href="structht__table.html">ht_table</a> *table, void *key, int free_key, int free_value)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes a key/value pair from the provided hash table. <a href="#a81a813f472a9b689032704fca76b3ce8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structht__table.html">ht_table</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8c.html#ad9cac6da8b459d5960079b0d95489960">ht_resize</a> (<a class="el" href="structht__table.html">ht_table</a> *table, unsigned int size)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Resizes the underlying table used for storing key/value pairs. <a href="#ad9cac6da8b459d5960079b0d95489960"></a><br/></td></tr>
</table>
<hr/><h2>Function Documentation</h2>
-<a class="anchor" id="abb67271f276fde7155cbbe63566d97c4"></a><!-- doxytag: member="ht.c::ht_delete" ref="abb67271f276fde7155cbbe63566d97c4" args="(ht_table *table, char *key)" -->
+<a class="anchor" id="a81a813f472a9b689032704fca76b3ce8"></a><!-- doxytag: member="ht.c::ht_delete" ref="a81a813f472a9b689032704fca76b3ce8" args="(ht_table *table, void *key, int free_key, int free_value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">unsigned int ht_delete </td>
+ <td class="memname">void ht_delete </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structht__table.html">ht_table</a> * </td>
<td class="paramname"><em>table</em>, </td>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">char * </td>
- <td class="paramname"><em>key</em> </td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>free_key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>free_value</em> </td>
</tr>
<tr>
<td></td>
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="ht_8c_source.html#l00116">116</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+<p>Deletes a key/value pair from the provided hash table. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">table</td><td>The table from which the key/value pait will be deleted. </td></tr>
+ <tr><td class="paramname">key</td><td>The key for the key/value pair to be deleted. </td></tr>
+ <tr><td class="paramname">free_key</td><td>Determines whether the key pointer will be freed. </td></tr>
+ <tr><td class="paramname">free_value</td><td>Determines whether the value pointer will be freed. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00125">125</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
</div>
</div>
-<a class="anchor" id="a36132061ce1dfb439cde8c8caa2b63bc"></a><!-- doxytag: member="ht.c::ht_free" ref="a36132061ce1dfb439cde8c8caa2b63bc" args="(ht_table *table)" -->
+<a class="anchor" id="a96de71bf3880ed0a879f60b6e5254803"></a><!-- doxytag: member="ht.c::ht_free" ref="a96de71bf3880ed0a879f60b6e5254803" args="(ht_table *table, int free_key, int free_value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<td class="memname">void ht_free </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structht__table.html">ht_table</a> * </td>
- <td class="paramname"><em>table</em></td><td>)</td>
+ <td class="paramname"><em>table</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>free_key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>free_value</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="ht_8c_source.html#l00045">45</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+<p>Frees all memory used by the provided hash table. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">table</td><td>The table to be freed. </td></tr>
+ <tr><td class="paramname">free_key</td><td>Determines whether the key pointers will be freed. </td></tr>
+ <tr><td class="paramname">free_value</td><td>Determines whether the value pointers will be freed. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00055">55</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
</div>
</div>
-<a class="anchor" id="a3d4217bc8aafc5cf0e37dda811afc3c5"></a><!-- doxytag: member="ht.c::ht_get" ref="a3d4217bc8aafc5cf0e37dda811afc3c5" args="(ht_table *table, char *key)" -->
+<a class="anchor" id="a5bc0ba0d31b944797e17a96372bce33e"></a><!-- doxytag: member="ht.c::ht_get" ref="a5bc0ba0d31b944797e17a96372bce33e" args="(ht_table *table, void *key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">char * </td>
+ <td class="paramtype">void * </td>
<td class="paramname"><em>key</em> </td>
</tr>
<tr>
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="ht_8c_source.html#l00099">99</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+<p>Retrieves a value from the provided table. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">table</td><td>The table in which to find the associated value. </td></tr>
+ <tr><td class="paramname">key</td><td>The key to lookup.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the value associated with the provided key. </dd></dl>
+
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00108">108</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
</div>
</div>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The hashed value of the key. </dd></dl>
-<p>Definition at line <a class="el" href="ht_8c_source.html#l00022">22</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00032">32</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The newly created table. </dd></dl>
-<p>Definition at line <a class="el" href="ht_8c_source.html#l00034">34</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00044">44</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
</div>
</div>
-<a class="anchor" id="a41caab4f2767cdd00399b2fb6f6ec424"></a><!-- doxytag: member="ht.c::ht_put" ref="a41caab4f2767cdd00399b2fb6f6ec424" args="(ht_table *table, void *key, void *val)" -->
+<a class="anchor" id="a8c17c7288d2f510dd5c091cccc6dd056"></a><!-- doxytag: member="ht.c::ht_put" ref="a8c17c7288d2f510dd5c091cccc6dd056" args="(ht_table *table, void *key, void *val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">int ht_put </td>
+ <td class="memname">void ht_put </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structht__table.html">ht_table</a> * </td>
<td class="paramname"><em>table</em>, </td>
</dd>
</dl>
-<p>Definition at line <a class="el" href="ht_8c_source.html#l00063">63</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00073">73</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
</div>
</div>
-<a class="anchor" id="a4c967f60d2129911b4311d9f4c7f3424"></a><!-- doxytag: member="ht.c::ht_resize" ref="a4c967f60d2129911b4311d9f4c7f3424" args="(ht_table *table, unsigned int size)" -->
+<a class="anchor" id="ad9cac6da8b459d5960079b0d95489960"></a><!-- doxytag: member="ht.c::ht_resize" ref="ad9cac6da8b459d5960079b0d95489960" args="(ht_table *table, unsigned int size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">unsigned int ht_resize </td>
+ <td class="memname"><a class="el" href="structht__table.html">ht_table</a>* ht_resize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structht__table.html">ht_table</a> * </td>
<td class="paramname"><em>table</em>, </td>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the resized table. </dd></dl>
-<p>Definition at line <a class="el" href="ht_8c_source.html#l00121">121</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00130">130</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="ht_8c.html">ht.c</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
</div>
<div class="contents">
<a href="ht_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span>
-<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2011 Michael D. Lowis</span>
-<a name="l00003"></a>00003 <span class="comment"> *</span>
-<a name="l00004"></a>00004 <span class="comment"> * This program is free software: you can redistribute it and/or modify</span>
-<a name="l00005"></a>00005 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
-<a name="l00006"></a>00006 <span class="comment"> * the Free Software Foundation, either version 3 of the License, or</span>
-<a name="l00007"></a>00007 <span class="comment"> * (at your option) any later version.</span>
-<a name="l00008"></a>00008 <span class="comment"> *</span>
-<a name="l00009"></a>00009 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
-<a name="l00010"></a>00010 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
-<a name="l00011"></a>00011 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
-<a name="l00012"></a>00012 <span class="comment"> * GNU General Public License for more details.</span>
-<a name="l00013"></a>00013 <span class="comment"> *</span>
-<a name="l00014"></a>00014 <span class="comment"> * You should have received a copy of the GNU General Public License</span>
-<a name="l00015"></a>00015 <span class="comment"> * along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
-<a name="l00016"></a>00016 <span class="comment"> *****************************************************************************/</span>
-<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="ht_8h.html">ht.h</a>"</span>
-<a name="l00018"></a>00018 <span class="preprocessor">#include <stdlib.h></span>
-<a name="l00019"></a>00019 <span class="preprocessor">#include <string.h></span>
-<a name="l00020"></a>00020 <span class="preprocessor">#include <stdio.h></span>
-<a name="l00021"></a>00021
-<a name="l00022"></a><a class="code" href="ht_8h.html#a278174a0154a10b8b10b23937ca4c721">00022</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="ht_8c.html#a278174a0154a10b8b10b23937ca4c721" title="Takes a string key value and returns it&#39;s hashed value.">ht_hash_string</a>(<span class="keywordtype">void</span>* key)
-<a name="l00023"></a>00023 {
-<a name="l00024"></a>00024 <span class="keywordtype">char</span>* key_str = (<span class="keywordtype">char</span>*)key;
-<a name="l00025"></a>00025 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> hash = 0;
-<a name="l00026"></a>00026 <span class="keywordtype">int</span> i = 0;
-<a name="l00027"></a>00027 <span class="keywordflow">for</span> (i = 0; key_str[i] != <span class="charliteral">'\0'</span>; i++)
-<a name="l00028"></a>00028 {
-<a name="l00029"></a>00029 hash += key_str[i];
-<a name="l00030"></a>00030 }
-<a name="l00031"></a>00031 <span class="keywordflow">return</span> hash;
-<a name="l00032"></a>00032 }
-<a name="l00033"></a>00033
-<a name="l00034"></a><a class="code" href="ht_8h.html#a0a3e03a29413673acd8899d250cd0844">00034</a> <a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* <a class="code" href="ht_8c.html#a0a3e03a29413673acd8899d250cd0844" title="Creates a new hash table of the given size using the provided hash function or the built-in string ha...">ht_new</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size, <a class="code" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf" title="Hash function for hashing keys in a hash table.">ht_hash_func</a> fn)
-<a name="l00035"></a>00035 {
-<a name="l00036"></a>00036 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> table_size = size * <span class="keyword">sizeof</span>(<a class="code" href="structnode.html" title="A node in a hash table.">ht_node</a>*);
-<a name="l00037"></a>00037 <a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table = (<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>*) malloc( <span class="keyword">sizeof</span>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>) );
-<a name="l00038"></a>00038 table-><a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4" title="Size of the internal table.">size</a> = size;
-<a name="l00039"></a>00039 table->table = (<a class="code" href="structnode.html" title="A node in a hash table.">ht_node</a>**) malloc( table_size );
-<a name="l00040"></a>00040 table->hash_func = (fn != NULL) ? fn : <a class="code" href="ht_8c.html#a278174a0154a10b8b10b23937ca4c721" title="Takes a string key value and returns it&#39;s hashed value.">ht_hash_string</a>;
-<a name="l00041"></a>00041 memset(table->table, 0, table_size);
-<a name="l00042"></a>00042 <span class="keywordflow">return</span> table;
-<a name="l00043"></a>00043 }
-<a name="l00044"></a>00044
-<a name="l00045"></a><a class="code" href="ht_8c.html#a36132061ce1dfb439cde8c8caa2b63bc">00045</a> <span class="keywordtype">void</span> <a class="code" href="ht_8c.html#a36132061ce1dfb439cde8c8caa2b63bc">ht_free</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table)
-<a name="l00046"></a>00046 {
-<a name="l00047"></a>00047 <span class="keywordtype">int</span> i = 0;
-<a name="l00048"></a>00048 <span class="keywordflow">for</span> (i = 0; i < table-><a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4" title="Size of the internal table.">size</a>; i++)
-<a name="l00049"></a>00049 {
-<a name="l00050"></a>00050 <a class="code" href="structnode.html" title="A node in a hash table.">ht_node</a>* cur = table-><a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc" title="Pointer to the internal hashing table.">table</a>[i];
-<a name="l00051"></a>00051 <span class="keywordflow">while</span> (cur != NULL)
-<a name="l00052"></a>00052 {
-<a name="l00053"></a>00053 printf(<span class="stringliteral">"Index: %d\tKey: %s\tVal: %#x\tNext: %#x\n"</span>, i, cur-><a class="code" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b" title="Pointer to the key.">key</a>, (<span class="keywordtype">int</span>)cur-><a class="code" href="structnode.html#a3866f55c05d50265b730d8cdeec0a1f8" title="Pointer to tke value.">val</a>, (<span class="keywordtype">int</span>)cur-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>);
-<a name="l00054"></a>00054 <a class="code" href="structnode.html" title="A node in a hash table.">ht_node</a>* next = cur-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00055"></a>00055 free( cur-><a class="code" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b" title="Pointer to the key.">key</a> );
-<a name="l00056"></a>00056 free( cur-><a class="code" href="structnode.html#a3866f55c05d50265b730d8cdeec0a1f8" title="Pointer to tke value.">val</a> );
-<a name="l00057"></a>00057 free( cur );
-<a name="l00058"></a>00058 cur = next;
-<a name="l00059"></a>00059 }
-<a name="l00060"></a>00060 }
-<a name="l00061"></a>00061 }
-<a name="l00062"></a>00062
-<a name="l00063"></a><a class="code" href="ht_8h.html#a8c17c7288d2f510dd5c091cccc6dd056">00063</a> <span class="keywordtype">int</span> <a class="code" href="ht_8c.html#a41caab4f2767cdd00399b2fb6f6ec424" title="Inserts a key/value pair into the provided table.">ht_put</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">void</span>* key, <span class="keywordtype">void</span>* val)
-<a name="l00064"></a>00064 {
-<a name="l00065"></a>00065 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index = table-><a class="code" href="structht__table.html#abe53fe8d261dea812255944769d22f45" title="Function used for hashing elements.">hash_func</a>( key ) % table-><a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4" title="Size of the internal table.">size</a>;
-<a name="l00066"></a>00066 <a class="code" href="structnode.html" title="A node in a hash table.">ht_node</a>* cur = table-><a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc" title="Pointer to the internal hashing table.">table</a>[index];
-<a name="l00067"></a>00067 <a class="code" href="structnode.html" title="A node in a hash table.">ht_node</a>* last = cur;
-<a name="l00068"></a>00068
-<a name="l00069"></a>00069 <span class="keywordflow">while</span> (cur != NULL)
-<a name="l00070"></a>00070 {
-<a name="l00071"></a>00071 <span class="keywordflow">if</span> ( !strcmp( key, cur-><a class="code" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b" title="Pointer to the key.">key</a> ) )
-<a name="l00072"></a>00072 {
-<a name="l00073"></a>00073 cur-><a class="code" href="structnode.html#a3866f55c05d50265b730d8cdeec0a1f8" title="Pointer to tke value.">val</a> = val;
-<a name="l00074"></a>00074 <span class="keywordflow">break</span>;
-<a name="l00075"></a>00075 }
-<a name="l00076"></a>00076 last = cur;
-<a name="l00077"></a>00077 cur = cur-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00078"></a>00078 }
-<a name="l00079"></a>00079
-<a name="l00080"></a>00080 <span class="keywordflow">if</span> (cur == NULL)
-<a name="l00081"></a>00081 {
-<a name="l00082"></a>00082 <a class="code" href="structnode.html" title="A node in a hash table.">ht_node</a>* <a class="code" href="structnode.html" title="A node in a hash table.">node</a> = (<a class="code" href="structnode.html" title="A node in a hash table.">ht_node</a>*) malloc( <span class="keyword">sizeof</span>(<a class="code" href="structnode.html" title="A node in a hash table.">ht_node</a>) );
-<a name="l00083"></a>00083 node-><a class="code" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b" title="Pointer to the key.">key</a> = (<span class="keywordtype">char</span>*) strdup( key );
-<a name="l00084"></a>00084 node-><a class="code" href="structnode.html#a3866f55c05d50265b730d8cdeec0a1f8" title="Pointer to tke value.">val</a> = val;
-<a name="l00085"></a>00085 node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a> = NULL;
-<a name="l00086"></a>00086
-<a name="l00087"></a>00087 <span class="keywordflow">if</span> (last != NULL)
-<a name="l00088"></a>00088 {
-<a name="l00089"></a>00089 last-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a> = node;
-<a name="l00090"></a>00090 }
-<a name="l00091"></a>00091 <span class="keywordflow">else</span>
-<a name="l00092"></a>00092 {
-<a name="l00093"></a>00093 table-><a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc" title="Pointer to the internal hashing table.">table</a>[ index ] = node;
-<a name="l00094"></a>00094 }
-<a name="l00095"></a>00095 }
-<a name="l00096"></a>00096 <span class="keywordflow">return</span> 1;
-<a name="l00097"></a>00097 }
-<a name="l00098"></a>00098
-<a name="l00099"></a><a class="code" href="ht_8c.html#a3d4217bc8aafc5cf0e37dda811afc3c5">00099</a> <span class="keywordtype">void</span>* <a class="code" href="ht_8c.html#a3d4217bc8aafc5cf0e37dda811afc3c5">ht_get</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">char</span>* key)
-<a name="l00100"></a>00100 {
-<a name="l00101"></a>00101 <span class="keywordtype">void</span>* ret = NULL;
-<a name="l00102"></a>00102 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index= table-><a class="code" href="structht__table.html#abe53fe8d261dea812255944769d22f45" title="Function used for hashing elements.">hash_func</a>( key ) % table-><a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4" title="Size of the internal table.">size</a>;
-<a name="l00103"></a>00103 <a class="code" href="structnode.html" title="A node in a hash table.">ht_node</a>* <a class="code" href="structnode.html" title="A node in a hash table.">node</a> = table-><a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc" title="Pointer to the internal hashing table.">table</a>[ index ];
-<a name="l00104"></a>00104 <span class="keywordflow">while</span> ( node != NULL )
-<a name="l00105"></a>00105 {
-<a name="l00106"></a>00106 <span class="keywordflow">if</span> ( !strcmp( key, node-><a class="code" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b" title="Pointer to the key.">key</a> ) )
-<a name="l00107"></a>00107 {
-<a name="l00108"></a>00108 ret = node-><a class="code" href="structnode.html#a3866f55c05d50265b730d8cdeec0a1f8" title="Pointer to tke value.">val</a>;
-<a name="l00109"></a>00109 <span class="keywordflow">break</span>;
-<a name="l00110"></a>00110 }
-<a name="l00111"></a>00111 node = node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00112"></a>00112 }
-<a name="l00113"></a>00113 <span class="keywordflow">return</span> ret;
-<a name="l00114"></a>00114 }
-<a name="l00115"></a>00115
-<a name="l00116"></a><a class="code" href="ht_8c.html#abb67271f276fde7155cbbe63566d97c4">00116</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="ht_8c.html#abb67271f276fde7155cbbe63566d97c4">ht_delete</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">char</span>* key)
-<a name="l00117"></a>00117 {
-<a name="l00118"></a>00118 <span class="keywordflow">return</span> 0;
-<a name="l00119"></a>00119 }
-<a name="l00120"></a>00120
-<a name="l00121"></a><a class="code" href="ht_8h.html#ad9cac6da8b459d5960079b0d95489960">00121</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="ht_8c.html#a4c967f60d2129911b4311d9f4c7f3424" title="Resizes the underlying table used for storing key/value pairs.">ht_resize</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size)
-<a name="l00122"></a>00122 {
-<a name="l00123"></a>00123 <span class="keywordflow">return</span> 0;
-<a name="l00124"></a>00124 }
-<a name="l00125"></a>00125
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2012, Michael D. Lowis</span>
+<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"> *</span>
+<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
+<a name="l00009"></a>00009 <span class="comment"> * this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice,</span>
+<a name="l00012"></a>00012 <span class="comment"> * this list of conditions and the following disclaimer in the documentation</span>
+<a name="l00013"></a>00013 <span class="comment"> * and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"> *</span>
+<a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span>
+<a name="l00016"></a>00016 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span>
+<a name="l00019"></a>00019 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00020"></a>00020 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00021"></a>00021 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00022"></a>00022 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00023"></a>00023 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00024"></a>00024 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
+<a name="l00025"></a>00025 <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00026"></a>00026 <span class="comment"> *****************************************************************************/</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="ht_8h.html">ht.h</a>"</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include <stdlib.h></span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include <string.h></span>
+<a name="l00030"></a>00030 <span class="preprocessor">#include <stdio.h></span>
+<a name="l00031"></a>00031
+<a name="l00032"></a><a class="code" href="ht_8h.html#a278174a0154a10b8b10b23937ca4c721">00032</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="ht_8c.html#a278174a0154a10b8b10b23937ca4c721" title="Takes a string key value and returns it&#39;s hashed value.">ht_hash_string</a>(<span class="keywordtype">void</span>* key)
+<a name="l00033"></a>00033 {
+<a name="l00034"></a>00034 <span class="keywordtype">char</span>* key_str = (<span class="keywordtype">char</span>*)key;
+<a name="l00035"></a>00035 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> hash = 0;
+<a name="l00036"></a>00036 <span class="keywordtype">int</span> i = 0;
+<a name="l00037"></a>00037 <span class="keywordflow">for</span> (i = 0; key_str[i] != <span class="charliteral">'\0'</span>; i++)
+<a name="l00038"></a>00038 {
+<a name="l00039"></a>00039 hash += key_str[i];
+<a name="l00040"></a>00040 }
+<a name="l00041"></a>00041 <span class="keywordflow">return</span> hash;
+<a name="l00042"></a>00042 }
+<a name="l00043"></a>00043
+<a name="l00044"></a><a class="code" href="ht_8h.html#a0a3e03a29413673acd8899d250cd0844">00044</a> <a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* <a class="code" href="ht_8c.html#a0a3e03a29413673acd8899d250cd0844" title="Creates a new hash table of the given size using the provided hash function or the built-in string ha...">ht_new</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size, <a class="code" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf" title="Hash function for hashing keys in a hash table.">ht_hash_func</a> fn)
+<a name="l00045"></a>00045 {
+<a name="l00046"></a>00046 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> table_size = size * <span class="keyword">sizeof</span>(<a class="code" href="structht__node.html" title="A node in a hash table.">ht_node</a>*);
+<a name="l00047"></a>00047 <a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table = (<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>*) malloc( <span class="keyword">sizeof</span>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>) );
+<a name="l00048"></a>00048 table-><a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4" title="Size of the internal table.">size</a> = size;
+<a name="l00049"></a>00049 table->table = (<a class="code" href="structht__node.html" title="A node in a hash table.">ht_node</a>**) malloc( table_size );
+<a name="l00050"></a>00050 table->hash_func = (fn != NULL) ? fn : <a class="code" href="ht_8c.html#a278174a0154a10b8b10b23937ca4c721" title="Takes a string key value and returns it&#39;s hashed value.">ht_hash_string</a>;
+<a name="l00051"></a>00051 memset(table->table, 0, table_size);
+<a name="l00052"></a>00052 <span class="keywordflow">return</span> table;
+<a name="l00053"></a>00053 }
+<a name="l00054"></a>00054
+<a name="l00055"></a><a class="code" href="ht_8h.html#a96de71bf3880ed0a879f60b6e5254803">00055</a> <span class="keywordtype">void</span> <a class="code" href="ht_8c.html#a96de71bf3880ed0a879f60b6e5254803" title="Frees all memory used by the provided hash table.">ht_free</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">int</span> free_key, <span class="keywordtype">int</span> free_value)
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057 <span class="keywordtype">int</span> i = 0;
+<a name="l00058"></a>00058 <span class="keywordflow">for</span> (i = 0; i < table-><a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4" title="Size of the internal table.">size</a>; i++)
+<a name="l00059"></a>00059 {
+<a name="l00060"></a>00060 <a class="code" href="structht__node.html" title="A node in a hash table.">ht_node</a>* cur = table-><a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc" title="Pointer to the internal hashing table.">table</a>[i];
+<a name="l00061"></a>00061 <span class="keywordflow">while</span> (cur != NULL)
+<a name="l00062"></a>00062 {
+<a name="l00063"></a>00063 printf(<span class="stringliteral">"Index: %d\tKey: %s\tVal: %#x\tNext: %#x\n"</span>, i, cur-><a class="code" href="structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b" title="Pointer to the key.">key</a>, (<span class="keywordtype">int</span>)cur-><a class="code" href="structht__node.html#a0e050852d00670316f005463a7d749f8" title="Pointer to the value.">val</a>, (<span class="keywordtype">int</span>)cur-><a class="code" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e" title="Pointer to the next node in the collision chain.">next</a>);
+<a name="l00064"></a>00064 <a class="code" href="structht__node.html" title="A node in a hash table.">ht_node</a>* next = cur-><a class="code" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e" title="Pointer to the next node in the collision chain.">next</a>;
+<a name="l00065"></a>00065 free( cur-><a class="code" href="structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b" title="Pointer to the key.">key</a> );
+<a name="l00066"></a>00066 free( cur-><a class="code" href="structht__node.html#a0e050852d00670316f005463a7d749f8" title="Pointer to the value.">val</a> );
+<a name="l00067"></a>00067 free( cur );
+<a name="l00068"></a>00068 cur = next;
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070 }
+<a name="l00071"></a>00071 }
+<a name="l00072"></a>00072
+<a name="l00073"></a><a class="code" href="ht_8h.html#a8c17c7288d2f510dd5c091cccc6dd056">00073</a> <span class="keywordtype">void</span> <a class="code" href="ht_8c.html#a8c17c7288d2f510dd5c091cccc6dd056" title="Inserts a key/value pair into the provided table.">ht_put</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">void</span>* key, <span class="keywordtype">void</span>* val)
+<a name="l00074"></a>00074 {
+<a name="l00075"></a>00075 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index = table-><a class="code" href="structht__table.html#abe53fe8d261dea812255944769d22f45" title="Function used for hashing elements.">hash_func</a>( key ) % table-><a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4" title="Size of the internal table.">size</a>;
+<a name="l00076"></a>00076 <a class="code" href="structht__node.html" title="A node in a hash table.">ht_node</a>* cur = table-><a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc" title="Pointer to the internal hashing table.">table</a>[index];
+<a name="l00077"></a>00077 <a class="code" href="structht__node.html" title="A node in a hash table.">ht_node</a>* last = cur;
+<a name="l00078"></a>00078
+<a name="l00079"></a>00079 <span class="keywordflow">while</span> (cur != NULL)
+<a name="l00080"></a>00080 {
+<a name="l00081"></a>00081 <span class="keywordflow">if</span> ( !strcmp( key, cur-><a class="code" href="structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b" title="Pointer to the key.">key</a> ) )
+<a name="l00082"></a>00082 {
+<a name="l00083"></a>00083 cur-><a class="code" href="structht__node.html#a0e050852d00670316f005463a7d749f8" title="Pointer to the value.">val</a> = val;
+<a name="l00084"></a>00084 <span class="keywordflow">break</span>;
+<a name="l00085"></a>00085 }
+<a name="l00086"></a>00086 last = cur;
+<a name="l00087"></a>00087 cur = cur-><a class="code" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e" title="Pointer to the next node in the collision chain.">next</a>;
+<a name="l00088"></a>00088 }
+<a name="l00089"></a>00089
+<a name="l00090"></a>00090 <span class="keywordflow">if</span> (cur == NULL)
+<a name="l00091"></a>00091 {
+<a name="l00092"></a>00092 <a class="code" href="structht__node.html" title="A node in a hash table.">ht_node</a>* node = (<a class="code" href="structht__node.html" title="A node in a hash table.">ht_node</a>*) malloc( <span class="keyword">sizeof</span>(<a class="code" href="structht__node.html" title="A node in a hash table.">ht_node</a>) );
+<a name="l00093"></a>00093 node-><a class="code" href="structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b" title="Pointer to the key.">key</a> = (<span class="keywordtype">char</span>*) strdup( key );
+<a name="l00094"></a>00094 node-><a class="code" href="structht__node.html#a0e050852d00670316f005463a7d749f8" title="Pointer to the value.">val</a> = val;
+<a name="l00095"></a>00095 node-><a class="code" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e" title="Pointer to the next node in the collision chain.">next</a> = NULL;
+<a name="l00096"></a>00096
+<a name="l00097"></a>00097 <span class="keywordflow">if</span> (last != NULL)
+<a name="l00098"></a>00098 {
+<a name="l00099"></a>00099 last-><a class="code" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e" title="Pointer to the next node in the collision chain.">next</a> = node;
+<a name="l00100"></a>00100 }
+<a name="l00101"></a>00101 <span class="keywordflow">else</span>
+<a name="l00102"></a>00102 {
+<a name="l00103"></a>00103 table-><a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc" title="Pointer to the internal hashing table.">table</a>[ index ] = node;
+<a name="l00104"></a>00104 }
+<a name="l00105"></a>00105 }
+<a name="l00106"></a>00106 }
+<a name="l00107"></a>00107
+<a name="l00108"></a><a class="code" href="ht_8h.html#a5bc0ba0d31b944797e17a96372bce33e">00108</a> <span class="keywordtype">void</span>* <a class="code" href="ht_8c.html#a5bc0ba0d31b944797e17a96372bce33e" title="Retrieves a value from the provided table.">ht_get</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">void</span>* key)
+<a name="l00109"></a>00109 {
+<a name="l00110"></a>00110 <span class="keywordtype">void</span>* ret = NULL;
+<a name="l00111"></a>00111 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index= table-><a class="code" href="structht__table.html#abe53fe8d261dea812255944769d22f45" title="Function used for hashing elements.">hash_func</a>( key ) % table-><a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4" title="Size of the internal table.">size</a>;
+<a name="l00112"></a>00112 <a class="code" href="structht__node.html" title="A node in a hash table.">ht_node</a>* node = table-><a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc" title="Pointer to the internal hashing table.">table</a>[ index ];
+<a name="l00113"></a>00113 <span class="keywordflow">while</span> ( node != NULL )
+<a name="l00114"></a>00114 {
+<a name="l00115"></a>00115 <span class="keywordflow">if</span> ( !strcmp( key, node-><a class="code" href="structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b" title="Pointer to the key.">key</a> ) )
+<a name="l00116"></a>00116 {
+<a name="l00117"></a>00117 ret = node-><a class="code" href="structht__node.html#a0e050852d00670316f005463a7d749f8" title="Pointer to the value.">val</a>;
+<a name="l00118"></a>00118 <span class="keywordflow">break</span>;
+<a name="l00119"></a>00119 }
+<a name="l00120"></a>00120 node = node-><a class="code" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e" title="Pointer to the next node in the collision chain.">next</a>;
+<a name="l00121"></a>00121 }
+<a name="l00122"></a>00122 <span class="keywordflow">return</span> ret;
+<a name="l00123"></a>00123 }
+<a name="l00124"></a>00124
+<a name="l00125"></a><a class="code" href="ht_8h.html#a81a813f472a9b689032704fca76b3ce8">00125</a> <span class="keywordtype">void</span> <a class="code" href="ht_8c.html#a81a813f472a9b689032704fca76b3ce8" title="Deletes a key/value pair from the provided hash table.">ht_delete</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">void</span>* key, <span class="keywordtype">int</span> free_key, <span class="keywordtype">int</span> free_value)
+<a name="l00126"></a>00126 {
+<a name="l00127"></a>00127 <span class="keywordflow">return</span> 0;
+<a name="l00128"></a>00128 }
+<a name="l00129"></a>00129
+<a name="l00130"></a><a class="code" href="ht_8h.html#ad9cac6da8b459d5960079b0d95489960">00130</a> <a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* <a class="code" href="ht_8c.html#ad9cac6da8b459d5960079b0d95489960" title="Resizes the underlying table used for storing key/value pairs.">ht_resize</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size)
+<a name="l00131"></a>00131 {
+<a name="l00132"></a>00132 <span class="keywordflow">return</span> 0;
+<a name="l00133"></a>00133 }
+<a name="l00134"></a>00134
</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="ht_8c.html">ht.c</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:03 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structnode.html">node</a></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">A node in a hash table. <a href="structnode.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structht__node.html">ht_node</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">A node in a hash table. <a href="structht__node.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structht__table.html">ht_table</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">A hash table. <a href="structht__table.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf">ht_hash_func</a> )(void *)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Hash function for hashing keys in a hash table. <a href="#a91a8d03489ef281e6f26d389c44d42cf"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structnode.html">node</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.html#a27a2fadaf99569e4b5c18dbd0b0a8160">ht_node</a></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">A node in a hash table. <a href="#a27a2fadaf99569e4b5c18dbd0b0a8160"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structht__node.html">ht_node</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.html#a3b70269a378f408bce2ae501e7ed1205">ht_node</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">A node in a hash table. <a href="#a3b70269a378f408bce2ae501e7ed1205"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.html#a278174a0154a10b8b10b23937ca4c721">ht_hash_string</a> (void *key)</td></tr>
<p>Hash function for hashing keys in a hash table. </p>
-<p>Definition at line <a class="el" href="ht_8h_source.html#l00021">21</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00031">31</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
</div>
</div>
-<a class="anchor" id="a27a2fadaf99569e4b5c18dbd0b0a8160"></a><!-- doxytag: member="ht.h::ht_node" ref="a27a2fadaf99569e4b5c18dbd0b0a8160" args="" -->
+<a class="anchor" id="a3b70269a378f408bce2ae501e7ed1205"></a><!-- doxytag: member="ht.h::ht_node" ref="a3b70269a378f408bce2ae501e7ed1205" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef struct <a class="el" href="structnode.html">node</a> <a class="el" href="structnode.html">ht_node</a></td>
+ <td class="memname">typedef struct <a class="el" href="structht__node.html">ht_node</a> <a class="el" href="structht__node.html">ht_node</a></td>
</tr>
</table>
</div>
</dd>
</dl>
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00125">125</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+
</div>
</div>
<a class="anchor" id="a96de71bf3880ed0a879f60b6e5254803"></a><!-- doxytag: member="ht.h::ht_free" ref="a96de71bf3880ed0a879f60b6e5254803" args="(ht_table *table, int free_key, int free_value)" -->
</dd>
</dl>
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00055">55</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+
</div>
</div>
<a class="anchor" id="a5bc0ba0d31b944797e17a96372bce33e"></a><!-- doxytag: member="ht.h::ht_get" ref="a5bc0ba0d31b944797e17a96372bce33e" args="(ht_table *table, void *key)" -->
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the value associated with the provided key. </dd></dl>
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00108">108</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+
</div>
</div>
<a class="anchor" id="a278174a0154a10b8b10b23937ca4c721"></a><!-- doxytag: member="ht.h::ht_hash_string" ref="a278174a0154a10b8b10b23937ca4c721" args="(void *key)" -->
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The hashed value of the key. </dd></dl>
-<p>Definition at line <a class="el" href="ht_8c_source.html#l00022">22</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00032">32</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The newly created table. </dd></dl>
-<p>Definition at line <a class="el" href="ht_8c_source.html#l00034">34</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00044">44</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="ht_8c_source.html#l00063">63</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00073">73</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
</div>
</div>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the resized table. </dd></dl>
-<p>Definition at line <a class="el" href="ht_8c_source.html#l00121">121</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
+<p>Definition at line <a class="el" href="ht_8c_source.html#l00130">130</a> of file <a class="el" href="ht_8c_source.html">ht.c</a>.</p>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="ht_8h.html">ht.h</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
</div>
<div class="contents">
<a href="ht_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span>
-<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2011 Michael D. Lowis</span>
-<a name="l00003"></a>00003 <span class="comment"> *</span>
-<a name="l00004"></a>00004 <span class="comment"> * This program is free software: you can redistribute it and/or modify</span>
-<a name="l00005"></a>00005 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
-<a name="l00006"></a>00006 <span class="comment"> * the Free Software Foundation, either version 3 of the License, or</span>
-<a name="l00007"></a>00007 <span class="comment"> * (at your option) any later version.</span>
-<a name="l00008"></a>00008 <span class="comment"> *</span>
-<a name="l00009"></a>00009 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
-<a name="l00010"></a>00010 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
-<a name="l00011"></a>00011 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
-<a name="l00012"></a>00012 <span class="comment"> * GNU General Public License for more details.</span>
-<a name="l00013"></a>00013 <span class="comment"> *</span>
-<a name="l00014"></a>00014 <span class="comment"> * You should have received a copy of the GNU General Public License</span>
-<a name="l00015"></a>00015 <span class="comment"> * along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
-<a name="l00016"></a>00016 <span class="comment"> *****************************************************************************/</span>
-<a name="l00017"></a>00017 <span class="preprocessor">#ifndef HASHTABLE_H</span>
-<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define HASHTABLE_H</span>
-<a name="l00019"></a>00019 <span class="preprocessor"></span>
-<a name="l00021"></a><a class="code" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf">00021</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> int (*<a class="code" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf" title="Hash function for hashing keys in a hash table.">ht_hash_func</a>) (<span class="keywordtype">void</span>*);
-<a name="l00022"></a>00022
-<a name="l00024"></a><a class="code" href="structnode.html">00024</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structnode.html" title="A node in a hash table.">node</a>
-<a name="l00025"></a>00025 {
-<a name="l00027"></a><a class="code" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b">00027</a> <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b" title="Pointer to the key.">key</a>;
-<a name="l00029"></a><a class="code" href="structnode.html#a3866f55c05d50265b730d8cdeec0a1f8">00029</a> <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a3866f55c05d50265b730d8cdeec0a1f8" title="Pointer to tke value.">val</a>;
-<a name="l00031"></a><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063">00031</a> <span class="keyword">struct </span><a class="code" href="structnode.html" title="A node in a hash table.">node</a>* <a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00032"></a>00032 } <a class="code" href="ht_8h.html#a27a2fadaf99569e4b5c18dbd0b0a8160" title="A node in a hash table.">ht_node</a>;
-<a name="l00033"></a>00033
-<a name="l00035"></a><a class="code" href="structht__table.html">00035</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
-<a name="l00036"></a>00036 {
-<a name="l00038"></a><a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4">00038</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4" title="Size of the internal table.">size</a>;
-<a name="l00040"></a><a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc">00040</a> <a class="code" href="structnode.html" title="A node in a hash table.">ht_node</a>** <a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc" title="Pointer to the internal hashing table.">table</a>;
-<a name="l00042"></a><a class="code" href="structht__table.html#abe53fe8d261dea812255944769d22f45">00042</a> <a class="code" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf" title="Hash function for hashing keys in a hash table.">ht_hash_func</a> <a class="code" href="structht__table.html#abe53fe8d261dea812255944769d22f45" title="Function used for hashing elements.">hash_func</a>;
-<a name="l00043"></a>00043 } <a class="code" href="structht__table.html" title="A hash table.">ht_table</a>;
-<a name="l00044"></a>00044
-<a name="l00052"></a>00052 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="ht_8c.html#a278174a0154a10b8b10b23937ca4c721" title="Takes a string key value and returns it&#39;s hashed value.">ht_hash_string</a>(<span class="keywordtype">void</span>* <a class="code" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b" title="Pointer to the key.">key</a>);
-<a name="l00053"></a>00053
-<a name="l00063"></a>00063 <a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* <a class="code" href="ht_8c.html#a0a3e03a29413673acd8899d250cd0844" title="Creates a new hash table of the given size using the provided hash function or the built-in string ha...">ht_new</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size, <a class="code" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf" title="Hash function for hashing keys in a hash table.">ht_hash_func</a> fn);
-<a name="l00064"></a>00064
-<a name="l00072"></a>00072 <span class="keywordtype">void</span> <a class="code" href="ht_8c.html#a36132061ce1dfb439cde8c8caa2b63bc">ht_free</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">int</span> free_key, <span class="keywordtype">int</span> free_value);
-<a name="l00073"></a>00073
-<a name="l00081"></a>00081 <span class="keywordtype">void</span> <a class="code" href="ht_8c.html#a41caab4f2767cdd00399b2fb6f6ec424" title="Inserts a key/value pair into the provided table.">ht_put</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b" title="Pointer to the key.">key</a>, <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a3866f55c05d50265b730d8cdeec0a1f8" title="Pointer to tke value.">val</a>);
-<a name="l00082"></a>00082
-<a name="l00091"></a>00091 <span class="keywordtype">void</span>* <a class="code" href="ht_8c.html#a3d4217bc8aafc5cf0e37dda811afc3c5">ht_get</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b" title="Pointer to the key.">key</a>);
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2012, Michael D. Lowis</span>
+<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"> *</span>
+<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
+<a name="l00009"></a>00009 <span class="comment"> * this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice,</span>
+<a name="l00012"></a>00012 <span class="comment"> * this list of conditions and the following disclaimer in the documentation</span>
+<a name="l00013"></a>00013 <span class="comment"> * and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"> *</span>
+<a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span>
+<a name="l00016"></a>00016 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span>
+<a name="l00019"></a>00019 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00020"></a>00020 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00021"></a>00021 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00022"></a>00022 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00023"></a>00023 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00024"></a>00024 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
+<a name="l00025"></a>00025 <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00026"></a>00026 <span class="comment"> *****************************************************************************/</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#ifndef HT_H</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#define HT_H</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span>
+<a name="l00031"></a><a class="code" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf">00031</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> int (*<a class="code" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf" title="Hash function for hashing keys in a hash table.">ht_hash_func</a>) (<span class="keywordtype">void</span>*);
+<a name="l00032"></a>00032
+<a name="l00034"></a><a class="code" href="structht__node.html">00034</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structht__node.html" title="A node in a hash table.">ht_node</a>
+<a name="l00035"></a>00035 {
+<a name="l00037"></a><a class="code" href="structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b">00037</a> <span class="keywordtype">void</span>* <a class="code" href="structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b" title="Pointer to the key.">key</a>;
+<a name="l00039"></a><a class="code" href="structht__node.html#a0e050852d00670316f005463a7d749f8">00039</a> <span class="keywordtype">void</span>* <a class="code" href="structht__node.html#a0e050852d00670316f005463a7d749f8" title="Pointer to the value.">val</a>;
+<a name="l00041"></a><a class="code" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e">00041</a> <span class="keyword">struct </span>node* <a class="code" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e" title="Pointer to the next node in the collision chain.">next</a>;
+<a name="l00042"></a>00042 } <a class="code" href="ht_8h.html#a3b70269a378f408bce2ae501e7ed1205" title="A node in a hash table.">ht_node</a>;
+<a name="l00043"></a>00043
+<a name="l00045"></a><a class="code" href="structht__table.html">00045</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
+<a name="l00046"></a>00046 {
+<a name="l00048"></a><a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4">00048</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4" title="Size of the internal table.">size</a>;
+<a name="l00050"></a><a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc">00050</a> <a class="code" href="structht__node.html" title="A node in a hash table.">ht_node</a>** <a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc" title="Pointer to the internal hashing table.">table</a>;
+<a name="l00052"></a><a class="code" href="structht__table.html#abe53fe8d261dea812255944769d22f45">00052</a> <a class="code" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf" title="Hash function for hashing keys in a hash table.">ht_hash_func</a> <a class="code" href="structht__table.html#abe53fe8d261dea812255944769d22f45" title="Function used for hashing elements.">hash_func</a>;
+<a name="l00053"></a>00053 } <a class="code" href="structht__table.html" title="A hash table.">ht_table</a>;
+<a name="l00054"></a>00054
+<a name="l00062"></a>00062 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="ht_8c.html#a278174a0154a10b8b10b23937ca4c721" title="Takes a string key value and returns it&#39;s hashed value.">ht_hash_string</a>(<span class="keywordtype">void</span>* key);
+<a name="l00063"></a>00063
+<a name="l00073"></a>00073 <a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* <a class="code" href="ht_8c.html#a0a3e03a29413673acd8899d250cd0844" title="Creates a new hash table of the given size using the provided hash function or the built-in string ha...">ht_new</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size, <a class="code" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf" title="Hash function for hashing keys in a hash table.">ht_hash_func</a> fn);
+<a name="l00074"></a>00074
+<a name="l00082"></a>00082 <span class="keywordtype">void</span> <a class="code" href="ht_8c.html#a96de71bf3880ed0a879f60b6e5254803" title="Frees all memory used by the provided hash table.">ht_free</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">int</span> free_key, <span class="keywordtype">int</span> free_value);
+<a name="l00083"></a>00083
+<a name="l00091"></a>00091 <span class="keywordtype">void</span> <a class="code" href="ht_8c.html#a8c17c7288d2f510dd5c091cccc6dd056" title="Inserts a key/value pair into the provided table.">ht_put</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">void</span>* key, <span class="keywordtype">void</span>* val);
<a name="l00092"></a>00092
-<a name="l00101"></a>00101 <span class="keywordtype">void</span> <a class="code" href="ht_8c.html#abb67271f276fde7155cbbe63566d97c4">ht_delete</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b" title="Pointer to the key.">key</a>, <span class="keywordtype">int</span> free_key, <span class="keywordtype">int</span> free_value);
+<a name="l00101"></a>00101 <span class="keywordtype">void</span>* <a class="code" href="ht_8c.html#a5bc0ba0d31b944797e17a96372bce33e" title="Retrieves a value from the provided table.">ht_get</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">void</span>* key);
<a name="l00102"></a>00102
-<a name="l00111"></a>00111 <a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* <a class="code" href="ht_8c.html#a4c967f60d2129911b4311d9f4c7f3424" title="Resizes the underlying table used for storing key/value pairs.">ht_resize</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size);
+<a name="l00111"></a>00111 <span class="keywordtype">void</span> <a class="code" href="ht_8c.html#a81a813f472a9b689032704fca76b3ce8" title="Deletes a key/value pair from the provided hash table.">ht_delete</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">void</span>* key, <span class="keywordtype">int</span> free_key, <span class="keywordtype">int</span> free_value);
<a name="l00112"></a>00112
-<a name="l00113"></a>00113 <span class="preprocessor">#endif</span>
+<a name="l00121"></a>00121 <a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* <a class="code" href="ht_8c.html#ad9cac6da8b459d5960079b0d95489960" title="Resizes the underlying table used for storing key/value pairs.">ht_resize</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size);
+<a name="l00122"></a>00122
+<a name="l00123"></a>00123 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="ht_8h.html">ht.h</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:03 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:03 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
[
[ "Data Structures", "index.html", [
[ "Class List", "annotated.html", [
+ [ "bt_node", "structbt__node.html", null ],
+ [ "bt_tree", "structbt__tree.html", null ],
+ [ "ht_node", "structht__node.html", null ],
[ "ht_table", "structht__table.html", null ],
- [ "node", "structnode.html", null ]
+ [ "sll_node", "structsll__node.html", null ]
] ],
[ "Class Index", "classes.html", null ],
[ "Class Members", "functions.html", null ],
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="rbt_8c.html">rbt.c</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<h1>src/trees/redblack/rbt.c</h1> </div>
</div>
<div class="contents">
-<a href="rbt_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"></pre></div></div>
+<a href="rbt_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span>
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2012, Michael D. Lowis</span>
+<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"> *</span>
+<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
+<a name="l00009"></a>00009 <span class="comment"> * this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice,</span>
+<a name="l00012"></a>00012 <span class="comment"> * this list of conditions and the following disclaimer in the documentation</span>
+<a name="l00013"></a>00013 <span class="comment"> * and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"> *</span>
+<a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span>
+<a name="l00016"></a>00016 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span>
+<a name="l00019"></a>00019 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00020"></a>00020 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00021"></a>00021 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00022"></a>00022 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00023"></a>00023 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00024"></a>00024 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
+<a name="l00025"></a>00025 <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00026"></a>00026 <span class="comment"> *****************************************************************************/</span>
+<a name="l00027"></a>00027
+</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="rbt_8c.html">rbt.c</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="rbt_8h.html">rbt.h</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<h1>src/trees/redblack/rbt.h</h1> </div>
</div>
<div class="contents">
-<a href="rbt_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"></pre></div></div>
+<a href="rbt_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span>
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2012, Michael D. Lowis</span>
+<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"> *</span>
+<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
+<a name="l00009"></a>00009 <span class="comment"> * this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice,</span>
+<a name="l00012"></a>00012 <span class="comment"> * this list of conditions and the following disclaimer in the documentation</span>
+<a name="l00013"></a>00013 <span class="comment"> * and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"> *</span>
+<a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span>
+<a name="l00016"></a>00016 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span>
+<a name="l00019"></a>00019 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00020"></a>00020 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00021"></a>00021 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00022"></a>00022 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00023"></a>00023 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00024"></a>00024 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
+<a name="l00025"></a>00025 <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00026"></a>00026 <span class="comment"> *****************************************************************************/</span>
+<a name="l00027"></a>00027
+</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="rbt_8h.html">rbt.h</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../bt_8h.html" target="_parent">bt.h</a>
</div>
</div>
+<div class="SRResult" id="SR_bt_5fcompare_5ffunc">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75" target="_parent">bt_compare_func</a>
+ <span class="SRScope">bt.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5fcompare_5fptr">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5fcompare_5fptr')">bt_compare_ptr</a>
+ <div class="SRChildren">
+ <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../bt_8c.html#a89f764721b6fb39787a79a597a7759b1" target="_parent">bt_compare_ptr(void *obj1, void *obj2): bt.c</a>
+ <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../bt_8h.html#a89f764721b6fb39787a79a597a7759b1" target="_parent">bt_compare_ptr(void *obj1, void *obj2): bt.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5fdelete">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5fdelete')">bt_delete</a>
+ <div class="SRChildren">
+ <a id="Item4_c0" onkeydown="return searchResults.NavChild(event,4,0)" onkeypress="return searchResults.NavChild(event,4,0)" onkeyup="return searchResults.NavChild(event,4,0)" class="SRScope" href="../bt_8c.html#ad23029f65222ccc60e026a60e124cbb6" target="_parent">bt_delete(bt_tree *tree, void *data): bt.c</a>
+ <a id="Item4_c1" onkeydown="return searchResults.NavChild(event,4,1)" onkeypress="return searchResults.NavChild(event,4,1)" onkeyup="return searchResults.NavChild(event,4,1)" class="SRScope" href="../bt_8h.html#afcbfcbca8b25fe867ea8b7b0deeaef9c" target="_parent">bt_delete(bt_tree *tree, void *data, int free_contents): bt.h</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5ffind">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5ffind')">bt_find</a>
+ <div class="SRChildren">
+ <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../bt_8c.html#a4f6d976b294d6f4e0968e5d4e75a7d31" target="_parent">bt_find(bt_tree *tree, void *data): bt.c</a>
+ <a id="Item5_c1" onkeydown="return searchResults.NavChild(event,5,1)" onkeypress="return searchResults.NavChild(event,5,1)" onkeyup="return searchResults.NavChild(event,5,1)" class="SRScope" href="../bt_8h.html#a4f6d976b294d6f4e0968e5d4e75a7d31" target="_parent">bt_find(bt_tree *tree, void *data): bt.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5ffree">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5ffree')">bt_free</a>
+ <div class="SRChildren">
+ <a id="Item6_c0" onkeydown="return searchResults.NavChild(event,6,0)" onkeypress="return searchResults.NavChild(event,6,0)" onkeyup="return searchResults.NavChild(event,6,0)" class="SRScope" href="../bt_8c.html#aa24dd75e23a367ec824d99793c2ba1bb" target="_parent">bt_free(bt_tree *tree, int free_contents): bt.c</a>
+ <a id="Item6_c1" onkeydown="return searchResults.NavChild(event,6,1)" onkeypress="return searchResults.NavChild(event,6,1)" onkeyup="return searchResults.NavChild(event,6,1)" class="SRScope" href="../bt_8h.html#aa24dd75e23a367ec824d99793c2ba1bb" target="_parent">bt_free(bt_tree *tree, int free_contents): bt.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5finsert">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5finsert')">bt_insert</a>
+ <div class="SRChildren">
+ <a id="Item7_c0" onkeydown="return searchResults.NavChild(event,7,0)" onkeypress="return searchResults.NavChild(event,7,0)" onkeyup="return searchResults.NavChild(event,7,0)" class="SRScope" href="../bt_8c.html#a08bc1827223c57790bbf396cd60e3317" target="_parent">bt_insert(bt_tree *tree, void *data): bt.c</a>
+ <a id="Item7_c1" onkeydown="return searchResults.NavChild(event,7,1)" onkeypress="return searchResults.NavChild(event,7,1)" onkeyup="return searchResults.NavChild(event,7,1)" class="SRScope" href="../bt_8h.html#a08bc1827223c57790bbf396cd60e3317" target="_parent">bt_insert(bt_tree *tree, void *data): bt.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5fnew">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5fnew')">bt_new</a>
+ <div class="SRChildren">
+ <a id="Item8_c0" onkeydown="return searchResults.NavChild(event,8,0)" onkeypress="return searchResults.NavChild(event,8,0)" onkeyup="return searchResults.NavChild(event,8,0)" class="SRScope" href="../bt_8c.html#a3682c3b6d0e0d70a0280de485ca687cc" target="_parent">bt_new(bt_compare_func compare): bt.c</a>
+ <a id="Item8_c1" onkeydown="return searchResults.NavChild(event,8,1)" onkeypress="return searchResults.NavChild(event,8,1)" onkeyup="return searchResults.NavChild(event,8,1)" class="SRScope" href="../bt_8h.html#a3682c3b6d0e0d70a0280de485ca687cc" target="_parent">bt_new(bt_compare_func compare): bt.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5fnode">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5fnode')">bt_node</a>
+ <div class="SRChildren">
+ <a id="Item9_c0" onkeydown="return searchResults.NavChild(event,9,0)" onkeypress="return searchResults.NavChild(event,9,0)" onkeyup="return searchResults.NavChild(event,9,0)" class="SRScope" href="../structbt__node.html" target="_parent">bt_node</a>
+ <a id="Item9_c1" onkeydown="return searchResults.NavChild(event,9,1)" onkeypress="return searchResults.NavChild(event,9,1)" onkeyup="return searchResults.NavChild(event,9,1)" class="SRScope" href="../bt_8h.html#a0add8fba825be5e3f912ab7323c1adaa" target="_parent">bt_node(): bt.h</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5ftree">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5ftree')">bt_tree</a>
+ <div class="SRChildren">
+ <a id="Item10_c0" onkeydown="return searchResults.NavChild(event,10,0)" onkeypress="return searchResults.NavChild(event,10,0)" onkeyup="return searchResults.NavChild(event,10,0)" class="SRScope" href="../structbt__tree.html" target="_parent">bt_tree</a>
+ <a id="Item10_c1" onkeydown="return searchResults.NavChild(event,10,1)" onkeypress="return searchResults.NavChild(event,10,1)" onkeyup="return searchResults.NavChild(event,10,1)" class="SRScope" href="../bt_8h.html#acc5ee766f7f379b1d2fde9e7468d7e2a" target="_parent">bt_tree(): bt.h</a>
+ </div>
+ </div>
+</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_compare">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structbt__tree.html#a7ac2a5e50551c1a10b1bf3884cd12af5" target="_parent">compare</a>
+ <span class="SRScope">bt_tree</span>
+ </div>
+</div>
<div class="SRResult" id="SR_contents">
<div class="SREntry">
- <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structnode.html#a6658978058886a89ccc39f1d1a56e6d1" target="_parent">contents</a>
- <span class="SRScope">node</span>
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_contents')">contents</a>
+ <div class="SRChildren">
+ <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structsll__node.html#aafacbed96ba149b0b8c705426196154c" target="_parent">sll_node::contents()</a>
+ <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structbt__node.html#a9e0d7c8bb9ca7bb4b69bd4af9ca1440c" target="_parent">bt_node::contents()</a>
+ </div>
</div>
</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SREntry">
<a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ht_5fdelete')">ht_delete</a>
<div class="SRChildren">
- <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../ht_8c.html#abb67271f276fde7155cbbe63566d97c4" target="_parent">ht_delete(ht_table *table, char *key): ht.c</a>
- <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../ht_8h.html#a81a813f472a9b689032704fca76b3ce8" target="_parent">ht_delete(ht_table *table, void *key, int free_key, int free_value): ht.h</a>
+ <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../ht_8c.html#a81a813f472a9b689032704fca76b3ce8" target="_parent">ht_delete(ht_table *table, void *key, int free_key, int free_value): ht.c</a>
+ <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../ht_8h.html#a81a813f472a9b689032704fca76b3ce8" target="_parent">ht_delete(ht_table *table, void *key, int free_key, int free_value): ht.c</a>
</div>
</div>
</div>
<div class="SREntry">
<a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ht_5ffree')">ht_free</a>
<div class="SRChildren">
- <a id="Item4_c0" onkeydown="return searchResults.NavChild(event,4,0)" onkeypress="return searchResults.NavChild(event,4,0)" onkeyup="return searchResults.NavChild(event,4,0)" class="SRScope" href="../ht_8c.html#a36132061ce1dfb439cde8c8caa2b63bc" target="_parent">ht_free(ht_table *table): ht.c</a>
- <a id="Item4_c1" onkeydown="return searchResults.NavChild(event,4,1)" onkeypress="return searchResults.NavChild(event,4,1)" onkeyup="return searchResults.NavChild(event,4,1)" class="SRScope" href="../ht_8h.html#a96de71bf3880ed0a879f60b6e5254803" target="_parent">ht_free(ht_table *table, int free_key, int free_value): ht.h</a>
+ <a id="Item4_c0" onkeydown="return searchResults.NavChild(event,4,0)" onkeypress="return searchResults.NavChild(event,4,0)" onkeyup="return searchResults.NavChild(event,4,0)" class="SRScope" href="../ht_8c.html#a96de71bf3880ed0a879f60b6e5254803" target="_parent">ht_free(ht_table *table, int free_key, int free_value): ht.c</a>
+ <a id="Item4_c1" onkeydown="return searchResults.NavChild(event,4,1)" onkeypress="return searchResults.NavChild(event,4,1)" onkeyup="return searchResults.NavChild(event,4,1)" class="SRScope" href="../ht_8h.html#a96de71bf3880ed0a879f60b6e5254803" target="_parent">ht_free(ht_table *table, int free_key, int free_value): ht.c</a>
</div>
</div>
</div>
<div class="SREntry">
<a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ht_5fget')">ht_get</a>
<div class="SRChildren">
- <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../ht_8c.html#a3d4217bc8aafc5cf0e37dda811afc3c5" target="_parent">ht_get(ht_table *table, char *key): ht.c</a>
- <a id="Item5_c1" onkeydown="return searchResults.NavChild(event,5,1)" onkeypress="return searchResults.NavChild(event,5,1)" onkeyup="return searchResults.NavChild(event,5,1)" class="SRScope" href="../ht_8h.html#a5bc0ba0d31b944797e17a96372bce33e" target="_parent">ht_get(ht_table *table, void *key): ht.h</a>
+ <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../ht_8c.html#a5bc0ba0d31b944797e17a96372bce33e" target="_parent">ht_get(ht_table *table, void *key): ht.c</a>
+ <a id="Item5_c1" onkeydown="return searchResults.NavChild(event,5,1)" onkeypress="return searchResults.NavChild(event,5,1)" onkeyup="return searchResults.NavChild(event,5,1)" class="SRScope" href="../ht_8h.html#a5bc0ba0d31b944797e17a96372bce33e" target="_parent">ht_get(ht_table *table, void *key): ht.c</a>
</div>
</div>
</div>
</div>
<div class="SRResult" id="SR_ht_5fnode">
<div class="SREntry">
- <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../ht_8h.html#a27a2fadaf99569e4b5c18dbd0b0a8160" target="_parent">ht_node</a>
- <span class="SRScope">ht.h</span>
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ht_5fnode')">ht_node</a>
+ <div class="SRChildren">
+ <a id="Item9_c0" onkeydown="return searchResults.NavChild(event,9,0)" onkeypress="return searchResults.NavChild(event,9,0)" onkeyup="return searchResults.NavChild(event,9,0)" class="SRScope" href="../structht__node.html" target="_parent">ht_node</a>
+ <a id="Item9_c1" onkeydown="return searchResults.NavChild(event,9,1)" onkeypress="return searchResults.NavChild(event,9,1)" onkeyup="return searchResults.NavChild(event,9,1)" class="SRScope" href="../ht_8h.html#a3b70269a378f408bce2ae501e7ed1205" target="_parent">ht_node(): ht.h</a>
+ </div>
</div>
</div>
<div class="SRResult" id="SR_ht_5fput">
<div class="SREntry">
<a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ht_5fput')">ht_put</a>
<div class="SRChildren">
- <a id="Item10_c0" onkeydown="return searchResults.NavChild(event,10,0)" onkeypress="return searchResults.NavChild(event,10,0)" onkeyup="return searchResults.NavChild(event,10,0)" class="SRScope" href="../ht_8c.html#a41caab4f2767cdd00399b2fb6f6ec424" target="_parent">ht_put(ht_table *table, void *key, void *val): ht.c</a>
+ <a id="Item10_c0" onkeydown="return searchResults.NavChild(event,10,0)" onkeypress="return searchResults.NavChild(event,10,0)" onkeyup="return searchResults.NavChild(event,10,0)" class="SRScope" href="../ht_8c.html#a8c17c7288d2f510dd5c091cccc6dd056" target="_parent">ht_put(ht_table *table, void *key, void *val): ht.c</a>
<a id="Item10_c1" onkeydown="return searchResults.NavChild(event,10,1)" onkeypress="return searchResults.NavChild(event,10,1)" onkeyup="return searchResults.NavChild(event,10,1)" class="SRScope" href="../ht_8h.html#a8c17c7288d2f510dd5c091cccc6dd056" target="_parent">ht_put(ht_table *table, void *key, void *val): ht.c</a>
</div>
</div>
<div class="SREntry">
<a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ht_5fresize')">ht_resize</a>
<div class="SRChildren">
- <a id="Item11_c0" onkeydown="return searchResults.NavChild(event,11,0)" onkeypress="return searchResults.NavChild(event,11,0)" onkeyup="return searchResults.NavChild(event,11,0)" class="SRScope" href="../ht_8c.html#a4c967f60d2129911b4311d9f4c7f3424" target="_parent">ht_resize(ht_table *table, unsigned int size): ht.c</a>
+ <a id="Item11_c0" onkeydown="return searchResults.NavChild(event,11,0)" onkeypress="return searchResults.NavChild(event,11,0)" onkeyup="return searchResults.NavChild(event,11,0)" class="SRScope" href="../ht_8c.html#ad9cac6da8b459d5960079b0d95489960" target="_parent">ht_resize(ht_table *table, unsigned int size): ht.c</a>
<a id="Item11_c1" onkeydown="return searchResults.NavChild(event,11,1)" onkeypress="return searchResults.NavChild(event,11,1)" onkeyup="return searchResults.NavChild(event,11,1)" class="SRScope" href="../ht_8h.html#ad9cac6da8b459d5960079b0d95489960" target="_parent">ht_resize(ht_table *table, unsigned int size): ht.c</a>
</div>
</div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRResult" id="SR_key">
<div class="SREntry">
- <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structnode.html#a72c8a0c41b801c92db89c5078642f28b" target="_parent">key</a>
- <span class="SRScope">node</span>
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b" target="_parent">key</a>
+ <span class="SRScope">ht_node</span>
</div>
</div>
<div class="SRStatus" id="Searching">Searching...</div>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_left">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structbt__node.html#a689e6fb3fde56bc337d5234b0d7f8e80" target="_parent">left</a>
+ <span class="SRScope">bt_node</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRResult" id="SR_next">
<div class="SREntry">
- <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structnode.html#a111a569ab2765add9b91c9f94cf9f063" target="_parent">next</a>
- <span class="SRScope">node</span>
- </div>
-</div>
-<div class="SRResult" id="SR_node">
- <div class="SREntry">
- <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structnode.html" target="_parent">node</a>
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_next')">next</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structht__node.html#ae1c5c426c9f752a40b5db427b506060e" target="_parent">ht_node::next()</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" target="_parent">sll_node::next()</a>
+ </div>
</div>
</div>
<div class="SRStatus" id="Searching">Searching...</div>
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../rbt_8h.html" target="_parent">rbt.h</a>
</div>
</div>
+<div class="SRResult" id="SR_right">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../structbt__node.html#aefe84db5b1f24953aba4743200b24898" target="_parent">right</a>
+ <span class="SRScope">bt_node</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_root">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../structbt__tree.html#ae428a77981f3b9f27f959b78ed468db7" target="_parent">root</a>
+ <span class="SRScope">bt_tree</span>
+ </div>
+</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
<a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../sll_8h.html" target="_parent">sll.h</a>
</div>
</div>
-<div class="SRResult" id="SR_sll_5fadd">
+<div class="SRResult" id="SR_sll_5fback">
<div class="SREntry">
- <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fadd')">sll_add</a>
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fback')">sll_back</a>
<div class="SRChildren">
- <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../sll_8c.html#a0751beeb21d1540c9ddcd5e01964e23e" target="_parent">sll_add(sll_node *list, void *contents): sll.c</a>
- <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../sll_8h.html#a0751beeb21d1540c9ddcd5e01964e23e" target="_parent">sll_add(sll_node *list, void *contents): sll.c</a>
+ <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../sll_8c.html#a78ef5151212d47bb63f2fd93453283ed" target="_parent">sll_back(sll_node *list): sll.c</a>
+ <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../sll_8h.html#a78ef5151212d47bb63f2fd93453283ed" target="_parent">sll_back(sll_node *list): sll.c</a>
</div>
</div>
</div>
</div>
</div>
</div>
-<div class="SRResult" id="SR_sll_5fget">
+<div class="SRResult" id="SR_sll_5ffront">
<div class="SREntry">
- <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fget')">sll_get</a>
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5ffront')">sll_front</a>
<div class="SRChildren">
- <a id="Item6_c0" onkeydown="return searchResults.NavChild(event,6,0)" onkeypress="return searchResults.NavChild(event,6,0)" onkeyup="return searchResults.NavChild(event,6,0)" class="SRScope" href="../sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" target="_parent">sll_get(sll_node *list, int index): sll.c</a>
- <a id="Item6_c1" onkeydown="return searchResults.NavChild(event,6,1)" onkeypress="return searchResults.NavChild(event,6,1)" onkeyup="return searchResults.NavChild(event,6,1)" class="SRScope" href="../sll_8h.html#aaf7e4557200dec55dec679f63de2b4d1" target="_parent">sll_get(sll_node *list, int index): sll.c</a>
+ <a id="Item6_c0" onkeydown="return searchResults.NavChild(event,6,0)" onkeypress="return searchResults.NavChild(event,6,0)" onkeyup="return searchResults.NavChild(event,6,0)" class="SRScope" href="../sll_8c.html#abe6fe02fbfcbf1d647ff94295b855e7e" target="_parent">sll_front(sll_node *list): sll.c</a>
+ <a id="Item6_c1" onkeydown="return searchResults.NavChild(event,6,1)" onkeypress="return searchResults.NavChild(event,6,1)" onkeyup="return searchResults.NavChild(event,6,1)" class="SRScope" href="../sll_8h.html#abe6fe02fbfcbf1d647ff94295b855e7e" target="_parent">sll_front(sll_node *list): sll.c</a>
</div>
</div>
</div>
-<div class="SRResult" id="SR_sll_5finsert">
+<div class="SRResult" id="SR_sll_5findex">
<div class="SREntry">
- <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5finsert')">sll_insert</a>
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5findex')">sll_index</a>
<div class="SRChildren">
- <a id="Item7_c0" onkeydown="return searchResults.NavChild(event,7,0)" onkeypress="return searchResults.NavChild(event,7,0)" onkeyup="return searchResults.NavChild(event,7,0)" class="SRScope" href="../sll_8c.html#a66769edc21579f71972ac90de6da4a9f" target="_parent">sll_insert(sll_node *list, int index, void *contents): sll.c</a>
- <a id="Item7_c1" onkeydown="return searchResults.NavChild(event,7,1)" onkeypress="return searchResults.NavChild(event,7,1)" onkeyup="return searchResults.NavChild(event,7,1)" class="SRScope" href="../sll_8h.html#a66769edc21579f71972ac90de6da4a9f" target="_parent">sll_insert(sll_node *list, int index, void *contents): sll.c</a>
+ <a id="Item7_c0" onkeydown="return searchResults.NavChild(event,7,0)" onkeypress="return searchResults.NavChild(event,7,0)" onkeyup="return searchResults.NavChild(event,7,0)" class="SRScope" href="../sll_8c.html#a0582f263482ead73d53b018978513540" target="_parent">sll_index(sll_node *list, int index): sll.c</a>
+ <a id="Item7_c1" onkeydown="return searchResults.NavChild(event,7,1)" onkeypress="return searchResults.NavChild(event,7,1)" onkeyup="return searchResults.NavChild(event,7,1)" class="SRScope" href="../sll_8h.html#a0582f263482ead73d53b018978513540" target="_parent">sll_index(sll_node *list, int index): sll.c</a>
</div>
</div>
</div>
-<div class="SRResult" id="SR_sll_5flast">
+<div class="SRResult" id="SR_sll_5finsert">
<div class="SREntry">
- <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5flast')">sll_last</a>
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5finsert')">sll_insert</a>
<div class="SRChildren">
- <a id="Item8_c0" onkeydown="return searchResults.NavChild(event,8,0)" onkeypress="return searchResults.NavChild(event,8,0)" onkeyup="return searchResults.NavChild(event,8,0)" class="SRScope" href="../sll_8c.html#af7327f24d1900d495c1bf914a592b631" target="_parent">sll_last(sll_node *list): sll.c</a>
- <a id="Item8_c1" onkeydown="return searchResults.NavChild(event,8,1)" onkeypress="return searchResults.NavChild(event,8,1)" onkeyup="return searchResults.NavChild(event,8,1)" class="SRScope" href="../sll_8h.html#af7327f24d1900d495c1bf914a592b631" target="_parent">sll_last(sll_node *list): sll.c</a>
+ <a id="Item8_c0" onkeydown="return searchResults.NavChild(event,8,0)" onkeypress="return searchResults.NavChild(event,8,0)" onkeyup="return searchResults.NavChild(event,8,0)" class="SRScope" href="../sll_8c.html#a66769edc21579f71972ac90de6da4a9f" target="_parent">sll_insert(sll_node *list, int index, void *contents): sll.c</a>
+ <a id="Item8_c1" onkeydown="return searchResults.NavChild(event,8,1)" onkeypress="return searchResults.NavChild(event,8,1)" onkeyup="return searchResults.NavChild(event,8,1)" class="SRScope" href="../sll_8h.html#a66769edc21579f71972ac90de6da4a9f" target="_parent">sll_insert(sll_node *list, int index, void *contents): sll.c</a>
</div>
</div>
</div>
</div>
<div class="SRResult" id="SR_sll_5fnode">
<div class="SREntry">
- <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../sll_8h.html#a74030fe22c7f9308540aee0c4259b111" target="_parent">sll_node</a>
- <span class="SRScope">sll.h</span>
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fnode')">sll_node</a>
+ <div class="SRChildren">
+ <a id="Item11_c0" onkeydown="return searchResults.NavChild(event,11,0)" onkeypress="return searchResults.NavChild(event,11,0)" onkeyup="return searchResults.NavChild(event,11,0)" class="SRScope" href="../structsll__node.html" target="_parent">sll_node</a>
+ <a id="Item11_c1" onkeydown="return searchResults.NavChild(event,11,1)" onkeypress="return searchResults.NavChild(event,11,1)" onkeyup="return searchResults.NavChild(event,11,1)" class="SRScope" href="../sll_8h.html#a168d63554ec6362ceecf64acc3e15bce" target="_parent">sll_node(): sll.h</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_sll_5fpop_5fback">
+ <div class="SREntry">
+ <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fpop_5fback')">sll_pop_back</a>
+ <div class="SRChildren">
+ <a id="Item12_c0" onkeydown="return searchResults.NavChild(event,12,0)" onkeypress="return searchResults.NavChild(event,12,0)" onkeyup="return searchResults.NavChild(event,12,0)" class="SRScope" href="../sll_8c.html#af72e93329186ac936d2bf6f544aa1f6b" target="_parent">sll_pop_back(sll_node *list): sll.c</a>
+ <a id="Item12_c1" onkeydown="return searchResults.NavChild(event,12,1)" onkeypress="return searchResults.NavChild(event,12,1)" onkeyup="return searchResults.NavChild(event,12,1)" class="SRScope" href="../sll_8h.html#af72e93329186ac936d2bf6f544aa1f6b" target="_parent">sll_pop_back(sll_node *list): sll.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_sll_5fpop_5ffront">
+ <div class="SREntry">
+ <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fpop_5ffront')">sll_pop_front</a>
+ <div class="SRChildren">
+ <a id="Item13_c0" onkeydown="return searchResults.NavChild(event,13,0)" onkeypress="return searchResults.NavChild(event,13,0)" onkeyup="return searchResults.NavChild(event,13,0)" class="SRScope" href="../sll_8c.html#a1588e5a1f90852ee48403d5313d64269" target="_parent">sll_pop_front(sll_node *list): sll.c</a>
+ <a id="Item13_c1" onkeydown="return searchResults.NavChild(event,13,1)" onkeypress="return searchResults.NavChild(event,13,1)" onkeyup="return searchResults.NavChild(event,13,1)" class="SRScope" href="../sll_8h.html#a1588e5a1f90852ee48403d5313d64269" target="_parent">sll_pop_front(sll_node *list): sll.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_sll_5fpush_5fback">
+ <div class="SREntry">
+ <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fpush_5fback')">sll_push_back</a>
+ <div class="SRChildren">
+ <a id="Item14_c0" onkeydown="return searchResults.NavChild(event,14,0)" onkeypress="return searchResults.NavChild(event,14,0)" onkeyup="return searchResults.NavChild(event,14,0)" class="SRScope" href="../sll_8c.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" target="_parent">sll_push_back(sll_node *list, void *contents): sll.c</a>
+ <a id="Item14_c1" onkeydown="return searchResults.NavChild(event,14,1)" onkeypress="return searchResults.NavChild(event,14,1)" onkeyup="return searchResults.NavChild(event,14,1)" class="SRScope" href="../sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" target="_parent">sll_push_back(sll_node *list, void *contents): sll.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_sll_5fpush_5ffront">
+ <div class="SREntry">
+ <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fpush_5ffront')">sll_push_front</a>
+ <div class="SRChildren">
+ <a id="Item15_c0" onkeydown="return searchResults.NavChild(event,15,0)" onkeypress="return searchResults.NavChild(event,15,0)" onkeyup="return searchResults.NavChild(event,15,0)" class="SRScope" href="../sll_8c.html#acfe3ebc296fe75f1d0ee21195dd7b9bf" target="_parent">sll_push_front(sll_node *list, void *contents): sll.c</a>
+ <a id="Item15_c1" onkeydown="return searchResults.NavChild(event,15,1)" onkeypress="return searchResults.NavChild(event,15,1)" onkeyup="return searchResults.NavChild(event,15,1)" class="SRScope" href="../sll_8h.html#acfe3ebc296fe75f1d0ee21195dd7b9bf" target="_parent">sll_push_front(sll_node *list, void *contents): sll.c</a>
+ </div>
</div>
</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRResult" id="SR_val">
<div class="SREntry">
- <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structnode.html#a3866f55c05d50265b730d8cdeec0a1f8" target="_parent">val</a>
- <span class="SRScope">node</span>
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structht__node.html#a0e050852d00670316f005463a7d749f8" target="_parent">val</a>
+ <span class="SRScope">ht_node</span>
</div>
</div>
<div class="SRStatus" id="Searching">Searching...</div>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_bt_5fnode">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structbt__node.html" target="_parent">bt_node</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5ftree">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structbt__tree.html" target="_parent">bt_tree</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_ht_5fnode">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structht__node.html" target="_parent">ht_node</a>
+ </div>
+</div>
<div class="SRResult" id="SR_ht_5ftable">
<div class="SREntry">
- <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structht__table.html" target="_parent">ht_table</a>
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structht__table.html" target="_parent">ht_table</a>
</div>
</div>
<div class="SRStatus" id="Searching">Searching...</div>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_sll_5fnode">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structsll__node.html" target="_parent">sll_node</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_bt_5fcompare_5fptr">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5fcompare_5fptr')">bt_compare_ptr</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../bt_8c.html#a89f764721b6fb39787a79a597a7759b1" target="_parent">bt_compare_ptr(void *obj1, void *obj2): bt.c</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../bt_8h.html#a89f764721b6fb39787a79a597a7759b1" target="_parent">bt_compare_ptr(void *obj1, void *obj2): bt.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5fdelete">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5fdelete')">bt_delete</a>
+ <div class="SRChildren">
+ <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../bt_8c.html#ad23029f65222ccc60e026a60e124cbb6" target="_parent">bt_delete(bt_tree *tree, void *data): bt.c</a>
+ <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../bt_8h.html#afcbfcbca8b25fe867ea8b7b0deeaef9c" target="_parent">bt_delete(bt_tree *tree, void *data, int free_contents): bt.h</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5ffind">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5ffind')">bt_find</a>
+ <div class="SRChildren">
+ <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../bt_8c.html#a4f6d976b294d6f4e0968e5d4e75a7d31" target="_parent">bt_find(bt_tree *tree, void *data): bt.c</a>
+ <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../bt_8h.html#a4f6d976b294d6f4e0968e5d4e75a7d31" target="_parent">bt_find(bt_tree *tree, void *data): bt.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5ffree">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5ffree')">bt_free</a>
+ <div class="SRChildren">
+ <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../bt_8c.html#aa24dd75e23a367ec824d99793c2ba1bb" target="_parent">bt_free(bt_tree *tree, int free_contents): bt.c</a>
+ <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../bt_8h.html#aa24dd75e23a367ec824d99793c2ba1bb" target="_parent">bt_free(bt_tree *tree, int free_contents): bt.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5finsert">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5finsert')">bt_insert</a>
+ <div class="SRChildren">
+ <a id="Item4_c0" onkeydown="return searchResults.NavChild(event,4,0)" onkeypress="return searchResults.NavChild(event,4,0)" onkeyup="return searchResults.NavChild(event,4,0)" class="SRScope" href="../bt_8c.html#a08bc1827223c57790bbf396cd60e3317" target="_parent">bt_insert(bt_tree *tree, void *data): bt.c</a>
+ <a id="Item4_c1" onkeydown="return searchResults.NavChild(event,4,1)" onkeypress="return searchResults.NavChild(event,4,1)" onkeyup="return searchResults.NavChild(event,4,1)" class="SRScope" href="../bt_8h.html#a08bc1827223c57790bbf396cd60e3317" target="_parent">bt_insert(bt_tree *tree, void *data): bt.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5fnew">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bt_5fnew')">bt_new</a>
+ <div class="SRChildren">
+ <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../bt_8c.html#a3682c3b6d0e0d70a0280de485ca687cc" target="_parent">bt_new(bt_compare_func compare): bt.c</a>
+ <a id="Item5_c1" onkeydown="return searchResults.NavChild(event,5,1)" onkeypress="return searchResults.NavChild(event,5,1)" onkeyup="return searchResults.NavChild(event,5,1)" class="SRScope" href="../bt_8h.html#a3682c3b6d0e0d70a0280de485ca687cc" target="_parent">bt_new(bt_compare_func compare): bt.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
<div class="SREntry">
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ht_5fdelete')">ht_delete</a>
<div class="SRChildren">
- <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../ht_8c.html#abb67271f276fde7155cbbe63566d97c4" target="_parent">ht_delete(ht_table *table, char *key): ht.c</a>
- <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../ht_8h.html#a81a813f472a9b689032704fca76b3ce8" target="_parent">ht_delete(ht_table *table, void *key, int free_key, int free_value): ht.h</a>
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../ht_8c.html#a81a813f472a9b689032704fca76b3ce8" target="_parent">ht_delete(ht_table *table, void *key, int free_key, int free_value): ht.c</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../ht_8h.html#a81a813f472a9b689032704fca76b3ce8" target="_parent">ht_delete(ht_table *table, void *key, int free_key, int free_value): ht.c</a>
</div>
</div>
</div>
<div class="SREntry">
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ht_5ffree')">ht_free</a>
<div class="SRChildren">
- <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../ht_8c.html#a36132061ce1dfb439cde8c8caa2b63bc" target="_parent">ht_free(ht_table *table): ht.c</a>
- <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../ht_8h.html#a96de71bf3880ed0a879f60b6e5254803" target="_parent">ht_free(ht_table *table, int free_key, int free_value): ht.h</a>
+ <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../ht_8c.html#a96de71bf3880ed0a879f60b6e5254803" target="_parent">ht_free(ht_table *table, int free_key, int free_value): ht.c</a>
+ <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../ht_8h.html#a96de71bf3880ed0a879f60b6e5254803" target="_parent">ht_free(ht_table *table, int free_key, int free_value): ht.c</a>
</div>
</div>
</div>
<div class="SREntry">
<a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ht_5fget')">ht_get</a>
<div class="SRChildren">
- <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../ht_8c.html#a3d4217bc8aafc5cf0e37dda811afc3c5" target="_parent">ht_get(ht_table *table, char *key): ht.c</a>
- <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../ht_8h.html#a5bc0ba0d31b944797e17a96372bce33e" target="_parent">ht_get(ht_table *table, void *key): ht.h</a>
+ <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../ht_8c.html#a5bc0ba0d31b944797e17a96372bce33e" target="_parent">ht_get(ht_table *table, void *key): ht.c</a>
+ <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../ht_8h.html#a5bc0ba0d31b944797e17a96372bce33e" target="_parent">ht_get(ht_table *table, void *key): ht.c</a>
</div>
</div>
</div>
<div class="SREntry">
<a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ht_5fput')">ht_put</a>
<div class="SRChildren">
- <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../ht_8c.html#a41caab4f2767cdd00399b2fb6f6ec424" target="_parent">ht_put(ht_table *table, void *key, void *val): ht.c</a>
+ <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../ht_8c.html#a8c17c7288d2f510dd5c091cccc6dd056" target="_parent">ht_put(ht_table *table, void *key, void *val): ht.c</a>
<a id="Item5_c1" onkeydown="return searchResults.NavChild(event,5,1)" onkeypress="return searchResults.NavChild(event,5,1)" onkeyup="return searchResults.NavChild(event,5,1)" class="SRScope" href="../ht_8h.html#a8c17c7288d2f510dd5c091cccc6dd056" target="_parent">ht_put(ht_table *table, void *key, void *val): ht.c</a>
</div>
</div>
<div class="SREntry">
<a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ht_5fresize')">ht_resize</a>
<div class="SRChildren">
- <a id="Item6_c0" onkeydown="return searchResults.NavChild(event,6,0)" onkeypress="return searchResults.NavChild(event,6,0)" onkeyup="return searchResults.NavChild(event,6,0)" class="SRScope" href="../ht_8c.html#a4c967f60d2129911b4311d9f4c7f3424" target="_parent">ht_resize(ht_table *table, unsigned int size): ht.c</a>
+ <a id="Item6_c0" onkeydown="return searchResults.NavChild(event,6,0)" onkeypress="return searchResults.NavChild(event,6,0)" onkeyup="return searchResults.NavChild(event,6,0)" class="SRScope" href="../ht_8c.html#ad9cac6da8b459d5960079b0d95489960" target="_parent">ht_resize(ht_table *table, unsigned int size): ht.c</a>
<a id="Item6_c1" onkeydown="return searchResults.NavChild(event,6,1)" onkeypress="return searchResults.NavChild(event,6,1)" onkeyup="return searchResults.NavChild(event,6,1)" class="SRScope" href="../ht_8h.html#ad9cac6da8b459d5960079b0d95489960" target="_parent">ht_resize(ht_table *table, unsigned int size): ht.c</a>
</div>
</div>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
-<div class="SRResult" id="SR_sll_5fadd">
+<div class="SRResult" id="SR_sll_5fback">
<div class="SREntry">
- <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fadd')">sll_add</a>
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fback')">sll_back</a>
<div class="SRChildren">
- <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../sll_8c.html#a0751beeb21d1540c9ddcd5e01964e23e" target="_parent">sll_add(sll_node *list, void *contents): sll.c</a>
- <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../sll_8h.html#a0751beeb21d1540c9ddcd5e01964e23e" target="_parent">sll_add(sll_node *list, void *contents): sll.c</a>
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../sll_8c.html#a78ef5151212d47bb63f2fd93453283ed" target="_parent">sll_back(sll_node *list): sll.c</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../sll_8h.html#a78ef5151212d47bb63f2fd93453283ed" target="_parent">sll_back(sll_node *list): sll.c</a>
</div>
</div>
</div>
</div>
</div>
</div>
-<div class="SRResult" id="SR_sll_5fget">
+<div class="SRResult" id="SR_sll_5ffront">
<div class="SREntry">
- <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fget')">sll_get</a>
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5ffront')">sll_front</a>
<div class="SRChildren">
- <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" target="_parent">sll_get(sll_node *list, int index): sll.c</a>
- <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../sll_8h.html#aaf7e4557200dec55dec679f63de2b4d1" target="_parent">sll_get(sll_node *list, int index): sll.c</a>
+ <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../sll_8c.html#abe6fe02fbfcbf1d647ff94295b855e7e" target="_parent">sll_front(sll_node *list): sll.c</a>
+ <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../sll_8h.html#abe6fe02fbfcbf1d647ff94295b855e7e" target="_parent">sll_front(sll_node *list): sll.c</a>
</div>
</div>
</div>
-<div class="SRResult" id="SR_sll_5finsert">
+<div class="SRResult" id="SR_sll_5findex">
<div class="SREntry">
- <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5finsert')">sll_insert</a>
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5findex')">sll_index</a>
<div class="SRChildren">
- <a id="Item4_c0" onkeydown="return searchResults.NavChild(event,4,0)" onkeypress="return searchResults.NavChild(event,4,0)" onkeyup="return searchResults.NavChild(event,4,0)" class="SRScope" href="../sll_8c.html#a66769edc21579f71972ac90de6da4a9f" target="_parent">sll_insert(sll_node *list, int index, void *contents): sll.c</a>
- <a id="Item4_c1" onkeydown="return searchResults.NavChild(event,4,1)" onkeypress="return searchResults.NavChild(event,4,1)" onkeyup="return searchResults.NavChild(event,4,1)" class="SRScope" href="../sll_8h.html#a66769edc21579f71972ac90de6da4a9f" target="_parent">sll_insert(sll_node *list, int index, void *contents): sll.c</a>
+ <a id="Item4_c0" onkeydown="return searchResults.NavChild(event,4,0)" onkeypress="return searchResults.NavChild(event,4,0)" onkeyup="return searchResults.NavChild(event,4,0)" class="SRScope" href="../sll_8c.html#a0582f263482ead73d53b018978513540" target="_parent">sll_index(sll_node *list, int index): sll.c</a>
+ <a id="Item4_c1" onkeydown="return searchResults.NavChild(event,4,1)" onkeypress="return searchResults.NavChild(event,4,1)" onkeyup="return searchResults.NavChild(event,4,1)" class="SRScope" href="../sll_8h.html#a0582f263482ead73d53b018978513540" target="_parent">sll_index(sll_node *list, int index): sll.c</a>
</div>
</div>
</div>
-<div class="SRResult" id="SR_sll_5flast">
+<div class="SRResult" id="SR_sll_5finsert">
<div class="SREntry">
- <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5flast')">sll_last</a>
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5finsert')">sll_insert</a>
<div class="SRChildren">
- <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../sll_8c.html#af7327f24d1900d495c1bf914a592b631" target="_parent">sll_last(sll_node *list): sll.c</a>
- <a id="Item5_c1" onkeydown="return searchResults.NavChild(event,5,1)" onkeypress="return searchResults.NavChild(event,5,1)" onkeyup="return searchResults.NavChild(event,5,1)" class="SRScope" href="../sll_8h.html#af7327f24d1900d495c1bf914a592b631" target="_parent">sll_last(sll_node *list): sll.c</a>
+ <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../sll_8c.html#a66769edc21579f71972ac90de6da4a9f" target="_parent">sll_insert(sll_node *list, int index, void *contents): sll.c</a>
+ <a id="Item5_c1" onkeydown="return searchResults.NavChild(event,5,1)" onkeypress="return searchResults.NavChild(event,5,1)" onkeyup="return searchResults.NavChild(event,5,1)" class="SRScope" href="../sll_8h.html#a66769edc21579f71972ac90de6da4a9f" target="_parent">sll_insert(sll_node *list, int index, void *contents): sll.c</a>
</div>
</div>
</div>
</div>
</div>
</div>
+<div class="SRResult" id="SR_sll_5fpop_5fback">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fpop_5fback')">sll_pop_back</a>
+ <div class="SRChildren">
+ <a id="Item8_c0" onkeydown="return searchResults.NavChild(event,8,0)" onkeypress="return searchResults.NavChild(event,8,0)" onkeyup="return searchResults.NavChild(event,8,0)" class="SRScope" href="../sll_8c.html#af72e93329186ac936d2bf6f544aa1f6b" target="_parent">sll_pop_back(sll_node *list): sll.c</a>
+ <a id="Item8_c1" onkeydown="return searchResults.NavChild(event,8,1)" onkeypress="return searchResults.NavChild(event,8,1)" onkeyup="return searchResults.NavChild(event,8,1)" class="SRScope" href="../sll_8h.html#af72e93329186ac936d2bf6f544aa1f6b" target="_parent">sll_pop_back(sll_node *list): sll.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_sll_5fpop_5ffront">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fpop_5ffront')">sll_pop_front</a>
+ <div class="SRChildren">
+ <a id="Item9_c0" onkeydown="return searchResults.NavChild(event,9,0)" onkeypress="return searchResults.NavChild(event,9,0)" onkeyup="return searchResults.NavChild(event,9,0)" class="SRScope" href="../sll_8c.html#a1588e5a1f90852ee48403d5313d64269" target="_parent">sll_pop_front(sll_node *list): sll.c</a>
+ <a id="Item9_c1" onkeydown="return searchResults.NavChild(event,9,1)" onkeypress="return searchResults.NavChild(event,9,1)" onkeyup="return searchResults.NavChild(event,9,1)" class="SRScope" href="../sll_8h.html#a1588e5a1f90852ee48403d5313d64269" target="_parent">sll_pop_front(sll_node *list): sll.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_sll_5fpush_5fback">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fpush_5fback')">sll_push_back</a>
+ <div class="SRChildren">
+ <a id="Item10_c0" onkeydown="return searchResults.NavChild(event,10,0)" onkeypress="return searchResults.NavChild(event,10,0)" onkeyup="return searchResults.NavChild(event,10,0)" class="SRScope" href="../sll_8c.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" target="_parent">sll_push_back(sll_node *list, void *contents): sll.c</a>
+ <a id="Item10_c1" onkeydown="return searchResults.NavChild(event,10,1)" onkeypress="return searchResults.NavChild(event,10,1)" onkeyup="return searchResults.NavChild(event,10,1)" class="SRScope" href="../sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" target="_parent">sll_push_back(sll_node *list, void *contents): sll.c</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_sll_5fpush_5ffront">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_sll_5fpush_5ffront')">sll_push_front</a>
+ <div class="SRChildren">
+ <a id="Item11_c0" onkeydown="return searchResults.NavChild(event,11,0)" onkeypress="return searchResults.NavChild(event,11,0)" onkeyup="return searchResults.NavChild(event,11,0)" class="SRScope" href="../sll_8c.html#acfe3ebc296fe75f1d0ee21195dd7b9bf" target="_parent">sll_push_front(sll_node *list, void *contents): sll.c</a>
+ <a id="Item11_c1" onkeydown="return searchResults.NavChild(event,11,1)" onkeypress="return searchResults.NavChild(event,11,1)" onkeyup="return searchResults.NavChild(event,11,1)" class="SRScope" href="../sll_8h.html#acfe3ebc296fe75f1d0ee21195dd7b9bf" target="_parent">sll_push_front(sll_node *list, void *contents): sll.c</a>
+ </div>
+ </div>
+</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
var indexSectionsWithContent =
{
- 0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111100010010010001110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111100010011010001110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000010000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110100010000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- 3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- 4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000010010010000110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- 5: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ 3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000010000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000010011010001110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 5: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000010000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
};
var indexSectionNames =
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_bt_5fcompare_5ffunc">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75" target="_parent">bt_compare_func</a>
+ <span class="SRScope">bt.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5fnode">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../bt_8h.html#a0add8fba825be5e3f912ab7323c1adaa" target="_parent">bt_node</a>
+ <span class="SRScope">bt.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_bt_5ftree">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../bt_8h.html#acc5ee766f7f379b1d2fde9e7468d7e2a" target="_parent">bt_tree</a>
+ <span class="SRScope">bt.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
</div>
<div class="SRResult" id="SR_ht_5fnode">
<div class="SREntry">
- <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../ht_8h.html#a27a2fadaf99569e4b5c18dbd0b0a8160" target="_parent">ht_node</a>
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../ht_8h.html#a3b70269a378f408bce2ae501e7ed1205" target="_parent">ht_node</a>
<span class="SRScope">ht.h</span>
</div>
</div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRResult" id="SR_sll_5fnode">
<div class="SREntry">
- <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../sll_8h.html#a74030fe22c7f9308540aee0c4259b111" target="_parent">sll_node</a>
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../sll_8h.html#a168d63554ec6362ceecf64acc3e15bce" target="_parent">sll_node</a>
<span class="SRScope">sll.h</span>
</div>
</div>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_compare">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structbt__tree.html#a7ac2a5e50551c1a10b1bf3884cd12af5" target="_parent">compare</a>
+ <span class="SRScope">bt_tree</span>
+ </div>
+</div>
<div class="SRResult" id="SR_contents">
<div class="SREntry">
- <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structnode.html#a6658978058886a89ccc39f1d1a56e6d1" target="_parent">contents</a>
- <span class="SRScope">node</span>
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_contents')">contents</a>
+ <div class="SRChildren">
+ <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structsll__node.html#aafacbed96ba149b0b8c705426196154c" target="_parent">sll_node::contents()</a>
+ <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structbt__node.html#a9e0d7c8bb9ca7bb4b69bd4af9ca1440c" target="_parent">bt_node::contents()</a>
+ </div>
</div>
</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRResult" id="SR_key">
<div class="SREntry">
- <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structnode.html#a72c8a0c41b801c92db89c5078642f28b" target="_parent">key</a>
- <span class="SRScope">node</span>
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b" target="_parent">key</a>
+ <span class="SRScope">ht_node</span>
</div>
</div>
<div class="SRStatus" id="Searching">Searching...</div>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_left">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structbt__node.html#a689e6fb3fde56bc337d5234b0d7f8e80" target="_parent">left</a>
+ <span class="SRScope">bt_node</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRResult" id="SR_next">
<div class="SREntry">
- <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structnode.html#a111a569ab2765add9b91c9f94cf9f063" target="_parent">next</a>
- <span class="SRScope">node</span>
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_next')">next</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structht__node.html#ae1c5c426c9f752a40b5db427b506060e" target="_parent">ht_node::next()</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" target="_parent">sll_node::next()</a>
+ </div>
</div>
</div>
<div class="SRStatus" id="Searching">Searching...</div>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_right">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structbt__node.html#aefe84db5b1f24953aba4743200b24898" target="_parent">right</a>
+ <span class="SRScope">bt_node</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_root">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structbt__tree.html#ae428a77981f3b9f27f959b78ed468db7" target="_parent">root</a>
+ <span class="SRScope">bt_tree</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRResult" id="SR_val">
<div class="SREntry">
- <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structnode.html#a3866f55c05d50265b730d8cdeec0a1f8" target="_parent">val</a>
- <span class="SRScope">node</span>
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structht__node.html#a0e050852d00670316f005463a7d749f8" target="_parent">val</a>
+ <span class="SRScope">ht_node</span>
</div>
</div>
<div class="SRStatus" id="Searching">Searching...</div>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7">sll_new</a> (void *contents)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7">sll_new</a> (void *contents)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new linked list node with the supplied value. <a href="#a471151d11dc385e3364c9a38b19ecba7"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#af7327f24d1900d495c1bf914a592b631">sll_last</a> (<a class="el" href="structnode.html">sll_node</a> *list)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds and returns the last node in the supplied linked list. <a href="#af7327f24d1900d495c1bf914a592b631"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1">sll_get</a> (<a class="el" href="structnode.html">sll_node</a> *list, int index)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the node at the specified index in a linked list. <a href="#aaf7e4557200dec55dec679f63de2b4d1"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#a0751beeb21d1540c9ddcd5e01964e23e">sll_add</a> (<a class="el" href="structnode.html">sll_node</a> *list, void *contents)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a new node to an existing linked list. <a href="#a0751beeb21d1540c9ddcd5e01964e23e"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#a66769edc21579f71972ac90de6da4a9f">sll_insert</a> (<a class="el" href="structnode.html">sll_node</a> *list, int index, void *contents)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#abe6fe02fbfcbf1d647ff94295b855e7e">sll_front</a> (<a class="el" href="structsll__node.html">sll_node</a> *list)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds and returns the first node in the supplied linked list. <a href="#abe6fe02fbfcbf1d647ff94295b855e7e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#a78ef5151212d47bb63f2fd93453283ed">sll_back</a> (<a class="el" href="structsll__node.html">sll_node</a> *list)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds and returns the last node in the supplied linked list. <a href="#a78ef5151212d47bb63f2fd93453283ed"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#a0582f263482ead73d53b018978513540">sll_index</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, int index)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the node at the specified index in a linked list. <a href="#a0582f263482ead73d53b018978513540"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#a19ad0a86a87451a3ab68ad6d18c3e3e0">sll_push_back</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, void *contents)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a new node to the end of an existing linked list. <a href="#a19ad0a86a87451a3ab68ad6d18c3e3e0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#acfe3ebc296fe75f1d0ee21195dd7b9bf">sll_push_front</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, void *contents)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a new node to the front of an existing linked list. <a href="#acfe3ebc296fe75f1d0ee21195dd7b9bf"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#af72e93329186ac936d2bf6f544aa1f6b">sll_pop_back</a> (<a class="el" href="structsll__node.html">sll_node</a> *list)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes and returns a pointer to the last element of the list. <a href="#af72e93329186ac936d2bf6f544aa1f6b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#a1588e5a1f90852ee48403d5313d64269">sll_pop_front</a> (<a class="el" href="structsll__node.html">sll_node</a> *list)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes and returns a pointer to the first element of the list. <a href="#a1588e5a1f90852ee48403d5313d64269"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#a66769edc21579f71972ac90de6da4a9f">sll_insert</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, int index, void *contents)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Inserts a new node in a linked list at the specified index. <a href="#a66769edc21579f71972ac90de6da4a9f"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#afd494f171c24981f0d7a007841f21cfe">sll_delete</a> (<a class="el" href="structnode.html">sll_node</a> *list, int index, int free_contents)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#afd494f171c24981f0d7a007841f21cfe">sll_delete</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, int index, int free_contents)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes a node from the supplied list. <a href="#afd494f171c24981f0d7a007841f21cfe"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#a7373cc6bac0876b330da73722e24910b">sll_free</a> (<a class="el" href="structnode.html">sll_node</a> *list, int free_contents)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#a7373cc6bac0876b330da73722e24910b">sll_free</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, int free_contents)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees all memory used by a linked list. <a href="#a7373cc6bac0876b330da73722e24910b"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#af5f6589df6d0ef48ed6f57ac5527ddfe">sll_length</a> (<a class="el" href="structnode.html">sll_node</a> *list)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8c.html#af5f6589df6d0ef48ed6f57ac5527ddfe">sll_length</a> (<a class="el" href="structsll__node.html">sll_node</a> *list)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of elements in the list. <a href="#af5f6589df6d0ef48ed6f57ac5527ddfe"></a><br/></td></tr>
</table>
<hr/><h2>Function Documentation</h2>
-<a class="anchor" id="a0751beeb21d1540c9ddcd5e01964e23e"></a><!-- doxytag: member="sll.c::sll_add" ref="a0751beeb21d1540c9ddcd5e01964e23e" args="(sll_node *list, void *contents)" -->
+<a class="anchor" id="a78ef5151212d47bb63f2fd93453283ed"></a><!-- doxytag: member="sll.c::sll_back" ref="a78ef5151212d47bb63f2fd93453283ed" args="(sll_node *list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">sll_node</a>* sll_add </td>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_back </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
- <td class="paramname"><em>list</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>contents</em> </td>
- </tr>
- <tr>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
+ <td class="paramname"><em>list</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
-<p>Adds a new node to an existing linked list. </p>
+<p>Finds and returns the last node in the supplied linked list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
- <tr><td class="paramname">list</td><td></td></tr>
- <tr><td class="paramname">contents</td><td></td></tr>
+ <tr><td class="paramname">list</td><td>The linked list to search.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly added node. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the last node in the supplied list. </dd></dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00059">59</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00042">42</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
<p><div class="dynheader">
-Here is the call graph for this function:</div>
+Here is the caller graph for this function:</div>
<div class="dyncontent">
-<div class="center"><img src="sll_8c_a0751beeb21d1540c9ddcd5e01964e23e_cgraph.png" border="0" usemap="#sll_8c_a0751beeb21d1540c9ddcd5e01964e23e_cgraph" alt=""/></div>
-<map name="sll_8c_a0751beeb21d1540c9ddcd5e01964e23e_cgraph" id="sll_8c_a0751beeb21d1540c9ddcd5e01964e23e_cgraph">
-<area shape="rect" id="node3" href="sll_8c.html#af7327f24d1900d495c1bf914a592b631" title="Finds and returns the last node in the supplied linked list." alt="" coords="120,5,181,35"/>\r<area shape="rect" id="node5" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="119,59,183,88"/>\r</map>
+<div class="center"><img src="sll_8c_a78ef5151212d47bb63f2fd93453283ed_icgraph.png" border="0" usemap="#sll_8c_a78ef5151212d47bb63f2fd93453283ed_icgraph" alt=""/></div>
+<map name="sll_8c_a78ef5151212d47bb63f2fd93453283ed_icgraph" id="sll_8c_a78ef5151212d47bb63f2fd93453283ed_icgraph">
+<area shape="rect" id="node3" href="sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" title="Adds a new node to the end of an existing linked list." alt="" coords="127,5,231,35"/>\r</map>
</div>
</p>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">sll_node</a>* sll_delete </td>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_delete </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
<td class="paramname"><em>list</em>, </td>
</tr>
<tr>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the node that is now at the supplied index. </dd></dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00079">79</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00102">102</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="sll_8c_afd494f171c24981f0d7a007841f21cfe_cgraph.png" border="0" usemap="#sll_8c_afd494f171c24981f0d7a007841f21cfe_cgraph" alt=""/></div>
<map name="sll_8c_afd494f171c24981f0d7a007841f21cfe_cgraph" id="sll_8c_afd494f171c24981f0d7a007841f21cfe_cgraph">
-<area shape="rect" id="node3" href="sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" title="Return the node at the specified index in a linked list." alt="" coords="132,5,191,35"/>\r</map>
+<area shape="rect" id="node3" href="sll_8c.html#a0582f263482ead73d53b018978513540" title="Return the node at the specified index in a linked list." alt="" coords="132,5,204,35"/>\r</map>
</div>
</p>
<tr>
<td class="memname">void sll_free </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
<td class="paramname"><em>list</em>, </td>
</tr>
<tr>
</dd>
</dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00096">96</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00119">119</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abe6fe02fbfcbf1d647ff94295b855e7e"></a><!-- doxytag: member="sll.c::sll_front" ref="abe6fe02fbfcbf1d647ff94295b855e7e" args="(sll_node *list)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_front </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
+ <td class="paramname"><em>list</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Finds and returns the first node in the supplied linked list. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">list</td><td>The linked list to search.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the last node in the supplied list. </dd></dl>
+
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00038">38</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
</div>
</div>
-<a class="anchor" id="aaf7e4557200dec55dec679f63de2b4d1"></a><!-- doxytag: member="sll.c::sll_get" ref="aaf7e4557200dec55dec679f63de2b4d1" args="(sll_node *list, int index)" -->
+<a class="anchor" id="a0582f263482ead73d53b018978513540"></a><!-- doxytag: member="sll.c::sll_index" ref="a0582f263482ead73d53b018978513540" args="(sll_node *list, int index)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">sll_node</a>* sll_get </td>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_index </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
<td class="paramname"><em>list</em>, </td>
</tr>
<tr>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the node and the supplied index, NULL if out of range. </dd></dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00041">41</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00052">52</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
-<div class="center"><img src="sll_8c_aaf7e4557200dec55dec679f63de2b4d1_icgraph.png" border="0" usemap="#sll_8c_aaf7e4557200dec55dec679f63de2b4d1_icgraph" alt=""/></div>
-<map name="sll_8c_aaf7e4557200dec55dec679f63de2b4d1_icgraph" id="sll_8c_aaf7e4557200dec55dec679f63de2b4d1_icgraph">
-<area shape="rect" id="node3" href="sll_8h.html#afd494f171c24981f0d7a007841f21cfe" title="Deletes a node from the supplied list." alt="" coords="115,5,192,35"/>\r<area shape="rect" id="node5" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="116,59,191,88"/>\r</map>
+<div class="center"><img src="sll_8c_a0582f263482ead73d53b018978513540_icgraph.png" border="0" usemap="#sll_8c_a0582f263482ead73d53b018978513540_icgraph" alt=""/></div>
+<map name="sll_8c_a0582f263482ead73d53b018978513540_icgraph" id="sll_8c_a0582f263482ead73d53b018978513540_icgraph">
+<area shape="rect" id="node3" href="sll_8h.html#afd494f171c24981f0d7a007841f21cfe" title="Deletes a node from the supplied list." alt="" coords="128,5,205,35"/>\r<area shape="rect" id="node5" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="129,59,204,88"/>\r</map>
</div>
</p>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">sll_node</a>* sll_insert </td>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_insert </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
<td class="paramname"><em>list</em>, </td>
</tr>
<tr>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly inserted node, NULL if index is out of range. </dd></dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00065">65</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00088">88</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="sll_8c_a66769edc21579f71972ac90de6da4a9f_cgraph.png" border="0" usemap="#sll_8c_a66769edc21579f71972ac90de6da4a9f_cgraph" alt=""/></div>
<map name="sll_8c_a66769edc21579f71972ac90de6da4a9f_cgraph" id="sll_8c_a66769edc21579f71972ac90de6da4a9f_cgraph">
-<area shape="rect" id="node3" href="sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" title="Return the node at the specified index in a linked list." alt="" coords="132,5,191,35"/>\r<area shape="rect" id="node5" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="129,59,193,88"/>\r</map>
+<area shape="rect" id="node3" href="sll_8c.html#a0582f263482ead73d53b018978513540" title="Return the node at the specified index in a linked list." alt="" coords="129,5,201,35"/>\r<area shape="rect" id="node5" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="133,59,197,88"/>\r</map>
</div>
</p>
</div>
</div>
-<a class="anchor" id="af7327f24d1900d495c1bf914a592b631"></a><!-- doxytag: member="sll.c::sll_last" ref="af7327f24d1900d495c1bf914a592b631" args="(sll_node *list)" -->
+<a class="anchor" id="af5f6589df6d0ef48ed6f57ac5527ddfe"></a><!-- doxytag: member="sll.c::sll_length" ref="af5f6589df6d0ef48ed6f57ac5527ddfe" args="(sll_node *list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">sll_node</a>* sll_last </td>
+ <td class="memname">unsigned int sll_length </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
<td class="paramname"><em>list</em></td><td>)</td>
<td></td>
</tr>
</div>
<div class="memdoc">
-<p>Finds and returns the last node in the supplied linked list. </p>
+<p>Returns the number of elements in the list. </p>
+<p>Loops through the supplied list and returns a count of the number of elements contained in the list.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
- <tr><td class="paramname">list</td><td>The linked list to search.</td></tr>
+ <tr><td class="paramname">list</td><td>The list to be counted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the last node in the supplied list. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The number of elements in the list. </dd></dl>
+
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00134">134</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a471151d11dc385e3364c9a38b19ecba7"></a><!-- doxytag: member="sll.c::sll_new" ref="a471151d11dc385e3364c9a38b19ecba7" args="(void *contents)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_new </td>
+ <td>(</td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>contents</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00031">31</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Creates a new linked list node with the supplied value. </p>
+<p>This function allocates a new node on the heap and populates the node contents with the supplied contents pointer.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">contents</td><td>The contents of the newly created node.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the newly created node. </dd></dl>
+
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00030">30</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
-<div class="center"><img src="sll_8c_af7327f24d1900d495c1bf914a592b631_icgraph.png" border="0" usemap="#sll_8c_af7327f24d1900d495c1bf914a592b631_icgraph" alt=""/></div>
-<map name="sll_8c_af7327f24d1900d495c1bf914a592b631_icgraph" id="sll_8c_af7327f24d1900d495c1bf914a592b631_icgraph">
-<area shape="rect" id="node3" href="sll_8h.html#a0751beeb21d1540c9ddcd5e01964e23e" title="Adds a new node to an existing linked list." alt="" coords="119,5,180,35"/>\r</map>
+<div class="center"><img src="sll_8c_a471151d11dc385e3364c9a38b19ecba7_icgraph.png" border="0" usemap="#sll_8c_a471151d11dc385e3364c9a38b19ecba7_icgraph" alt=""/></div>
+<map name="sll_8c_a471151d11dc385e3364c9a38b19ecba7_icgraph" id="sll_8c_a471151d11dc385e3364c9a38b19ecba7_icgraph">
+<area shape="rect" id="node3" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="136,5,211,35"/>\r<area shape="rect" id="node5" href="sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" title="Adds a new node to the end of an existing linked list." alt="" coords="121,59,225,88"/>\r</map>
</div>
</p>
</div>
</div>
-<a class="anchor" id="af5f6589df6d0ef48ed6f57ac5527ddfe"></a><!-- doxytag: member="sll.c::sll_length" ref="af5f6589df6d0ef48ed6f57ac5527ddfe" args="(sll_node *list)" -->
+<a class="anchor" id="af72e93329186ac936d2bf6f544aa1f6b"></a><!-- doxytag: member="sll.c::sll_pop_back" ref="af72e93329186ac936d2bf6f544aa1f6b" args="(sll_node *list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">unsigned int sll_length </td>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_pop_back </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
<td class="paramname"><em>list</em></td><td>)</td>
<td></td>
</tr>
</div>
<div class="memdoc">
-<p>Returns the number of elements in the list. </p>
-<p>Loops through the supplied list and returns a count of the number of elements contained in the list.</p>
+<p>Removes and returns a pointer to the last element of the list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
- <tr><td class="paramname">list</td><td>The list to be counted.</td></tr>
+ <tr><td class="paramname">list</td><td></td></tr>
+ <tr><td class="paramname">contents</td><td></td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The number of elements in the list. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly added node. </dd></dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00111">111</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00080">80</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
</div>
</div>
-<a class="anchor" id="a471151d11dc385e3364c9a38b19ecba7"></a><!-- doxytag: member="sll.c::sll_new" ref="a471151d11dc385e3364c9a38b19ecba7" args="(void *contents)" -->
+<a class="anchor" id="a1588e5a1f90852ee48403d5313d64269"></a><!-- doxytag: member="sll.c::sll_pop_front" ref="a1588e5a1f90852ee48403d5313d64269" args="(sll_node *list)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_pop_front </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
+ <td class="paramname"><em>list</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Removes and returns a pointer to the first element of the list. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">list</td><td></td></tr>
+ <tr><td class="paramname">contents</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly added node. </dd></dl>
+
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00084">84</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a19ad0a86a87451a3ab68ad6d18c3e3e0"></a><!-- doxytag: member="sll.c::sll_push_back" ref="a19ad0a86a87451a3ab68ad6d18c3e3e0" args="(sll_node *list, void *contents)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">sll_node</a>* sll_new </td>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_push_back </td>
<td>(</td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
+ <td class="paramname"><em>list</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
<td class="paramtype">void * </td>
- <td class="paramname"><em>contents</em></td><td>)</td>
+ <td class="paramname"><em>contents</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
-<p>Creates a new linked list node with the supplied value. </p>
-<p>Allocates a new node on the heap and populates the node contents with the supplied contents pointer.</p>
+<p>Adds a new node to the end of an existing linked list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
- <tr><td class="paramname">contents</td><td>The contents of the newly created node.</td></tr>
+ <tr><td class="paramname">list</td><td></td></tr>
+ <tr><td class="paramname">contents</td><td></td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the newly created node. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly added node. </dd></dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00023">23</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00070">70</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
<p><div class="dynheader">
-Here is the caller graph for this function:</div>
+Here is the call graph for this function:</div>
<div class="dyncontent">
-<div class="center"><img src="sll_8c_a471151d11dc385e3364c9a38b19ecba7_icgraph.png" border="0" usemap="#sll_8c_a471151d11dc385e3364c9a38b19ecba7_icgraph" alt=""/></div>
-<map name="sll_8c_a471151d11dc385e3364c9a38b19ecba7_icgraph" id="sll_8c_a471151d11dc385e3364c9a38b19ecba7_icgraph">
-<area shape="rect" id="node3" href="sll_8h.html#a0751beeb21d1540c9ddcd5e01964e23e" title="Adds a new node to an existing linked list." alt="" coords="127,5,188,35"/>\r<area shape="rect" id="node5" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="120,59,195,88"/>\r</map>
+<div class="center"><img src="sll_8c_a19ad0a86a87451a3ab68ad6d18c3e3e0_cgraph.png" border="0" usemap="#sll_8c_a19ad0a86a87451a3ab68ad6d18c3e3e0_cgraph" alt=""/></div>
+<map name="sll_8c_a19ad0a86a87451a3ab68ad6d18c3e3e0_cgraph" id="sll_8c_a19ad0a86a87451a3ab68ad6d18c3e3e0_cgraph">
+<area shape="rect" id="node3" href="sll_8c.html#a78ef5151212d47bb63f2fd93453283ed" title="Finds and returns the last node in the supplied linked list." alt="" coords="161,5,231,35"/>\r<area shape="rect" id="node5" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="164,59,228,88"/>\r</map>
</div>
</p>
+</div>
+</div>
+<a class="anchor" id="acfe3ebc296fe75f1d0ee21195dd7b9bf"></a><!-- doxytag: member="sll.c::sll_push_front" ref="acfe3ebc296fe75f1d0ee21195dd7b9bf" args="(sll_node *list, void *contents)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_push_front </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
+ <td class="paramname"><em>list</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>contents</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Adds a new node to the front of an existing linked list. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">list</td><td></td></tr>
+ <tr><td class="paramname">contents</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly added node. </dd></dl>
+
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00076">76</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="sll_8c.html">sll.c</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
--- /dev/null
+<map id="G" name="G">
+<area shape="rect" id="node3" href="$sll_8h.html#afd494f171c24981f0d7a007841f21cfe" title="Deletes a node from the supplied list." alt="" coords="128,5,205,35"/>
+<area shape="rect" id="node5" href="$sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="129,59,204,88"/>
+</map>
--- /dev/null
+b6584d19ee0d40d5efb71710f0e680e9
\ No newline at end of file
--- /dev/null
+<map id="G" name="G">
+<area shape="rect" id="node3" href="$sll_8c.html#a78ef5151212d47bb63f2fd93453283ed" title="Finds and returns the last node in the supplied linked list." alt="" coords="161,5,231,35"/>
+<area shape="rect" id="node5" href="$sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="164,59,228,88"/>
+</map>
--- /dev/null
+f0eaae5a00fe62d72874f4a790f93d86
\ No newline at end of file
<map id="G" name="G">
-<area shape="rect" id="node3" href="$sll_8h.html#a0751beeb21d1540c9ddcd5e01964e23e" title="Adds a new node to an existing linked list." alt="" coords="127,5,188,35"/>
-<area shape="rect" id="node5" href="$sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="120,59,195,88"/>
+<area shape="rect" id="node3" href="$sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="136,5,211,35"/>
+<area shape="rect" id="node5" href="$sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" title="Adds a new node to the end of an existing linked list." alt="" coords="121,59,225,88"/>
</map>
-1ae6766da0c2ac7f937ec87db8fab253
\ No newline at end of file
+24311e03e208ca06ba4307b0636c7bf5
\ No newline at end of file
<map id="G" name="G">
-<area shape="rect" id="node3" href="$sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" title="Return the node at the specified index in a linked list." alt="" coords="132,5,191,35"/>
-<area shape="rect" id="node5" href="$sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="129,59,193,88"/>
+<area shape="rect" id="node3" href="$sll_8c.html#a0582f263482ead73d53b018978513540" title="Return the node at the specified index in a linked list." alt="" coords="129,5,201,35"/>
+<area shape="rect" id="node5" href="$sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="133,59,197,88"/>
</map>
-ff11d8f8b0b38a1b305a7bf13e6f2952
\ No newline at end of file
+493ae324bbbeae2a5e2343119345e996
\ No newline at end of file
--- /dev/null
+<map id="G" name="G">
+<area shape="rect" id="node3" href="$sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" title="Adds a new node to the end of an existing linked list." alt="" coords="127,5,231,35"/>
+</map>
--- /dev/null
+ec7827fa24fb39aad7229bcdca5234c5
\ No newline at end of file
<map id="G" name="G">
-<area shape="rect" id="node3" href="$sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" title="Return the node at the specified index in a linked list." alt="" coords="132,5,191,35"/>
+<area shape="rect" id="node3" href="$sll_8c.html#a0582f263482ead73d53b018978513540" title="Return the node at the specified index in a linked list." alt="" coords="132,5,204,35"/>
</map>
-2b69d7a9b9aa88a844d7bbc6333b6f89
\ No newline at end of file
+0421e0bf499fbdebfb519e23e96452d9
\ No newline at end of file
</div>
<div class="contents">
<a href="sll_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span>
-<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2011 Michael D. Lowis</span>
-<a name="l00003"></a>00003 <span class="comment"> *</span>
-<a name="l00004"></a>00004 <span class="comment"> * This program is free software: you can redistribute it and/or modify</span>
-<a name="l00005"></a>00005 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
-<a name="l00006"></a>00006 <span class="comment"> * the Free Software Foundation, either version 3 of the License, or</span>
-<a name="l00007"></a>00007 <span class="comment"> * (at your option) any later version.</span>
-<a name="l00008"></a>00008 <span class="comment"> *</span>
-<a name="l00009"></a>00009 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
-<a name="l00010"></a>00010 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
-<a name="l00011"></a>00011 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
-<a name="l00012"></a>00012 <span class="comment"> * GNU General Public License for more details.</span>
-<a name="l00013"></a>00013 <span class="comment"> *</span>
-<a name="l00014"></a>00014 <span class="comment"> * You should have received a copy of the GNU General Public License</span>
-<a name="l00015"></a>00015 <span class="comment"> * along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
-<a name="l00016"></a>00016 <span class="comment"> *****************************************************************************/</span>
-<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="sll_8h.html">sll.h</a>"</span>
-<a name="l00018"></a>00018 <span class="preprocessor">#include <stdlib.h></span>
-<a name="l00019"></a>00019
-<a name="l00020"></a>00020 <span class="comment">/******************************************************************************</span>
-<a name="l00021"></a>00021 <span class="comment"> * Public Functions</span>
-<a name="l00022"></a>00022 <span class="comment"> ******************************************************************************/</span>
-<a name="l00023"></a><a class="code" href="sll_8h.html#a471151d11dc385e3364c9a38b19ecba7">00023</a> <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value.">sll_new</a>( <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a> )
-<a name="l00024"></a>00024 {
-<a name="l00025"></a>00025 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list = (<a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>*)malloc( <span class="keyword">sizeof</span>(<a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>) );
-<a name="l00026"></a>00026 list-><a class="code" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a> = <a class="code" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a>;
-<a name="l00027"></a>00027 list-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a> = NULL;
-<a name="l00028"></a>00028 <span class="keywordflow">return</span> list;
-<a name="l00029"></a>00029 }
-<a name="l00030"></a>00030
-<a name="l00031"></a><a class="code" href="sll_8h.html#af7327f24d1900d495c1bf914a592b631">00031</a> <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="sll_8c.html#af7327f24d1900d495c1bf914a592b631" title="Finds and returns the last node in the supplied linked list.">sll_last</a>( <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list )
-<a name="l00032"></a>00032 {
-<a name="l00033"></a>00033 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="structnode.html" title="A node in a hash table.">node</a> = list;
-<a name="l00034"></a>00034 <span class="keywordflow">while</span>((node != NULL) && (node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a> != NULL))
-<a name="l00035"></a>00035 {
-<a name="l00036"></a>00036 node = node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00037"></a>00037 }
-<a name="l00038"></a>00038 <span class="keywordflow">return</span> node;
-<a name="l00039"></a>00039 }
-<a name="l00040"></a>00040
-<a name="l00041"></a><a class="code" href="sll_8h.html#aaf7e4557200dec55dec679f63de2b4d1">00041</a> <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" title="Return the node at the specified index in a linked list.">sll_get</a>( <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list, <span class="keywordtype">int</span> index )
-<a name="l00042"></a>00042 {
-<a name="l00043"></a>00043 <span class="keywordtype">int</span> current = 0;
-<a name="l00044"></a>00044 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="structnode.html" title="A node in a hash table.">node</a> = list;
-<a name="l00045"></a>00045 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* indexed_node = NULL;
-<a name="l00046"></a>00046 <span class="keywordflow">while</span> ((node != NULL))
-<a name="l00047"></a>00047 {
-<a name="l00048"></a>00048 <span class="keywordflow">if</span> ( current == index )
-<a name="l00049"></a>00049 {
-<a name="l00050"></a>00050 indexed_node = node;
-<a name="l00051"></a>00051 <span class="keywordflow">break</span>;
-<a name="l00052"></a>00052 }
-<a name="l00053"></a>00053 node = node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00054"></a>00054 current++;
-<a name="l00055"></a>00055 }
-<a name="l00056"></a>00056 <span class="keywordflow">return</span> indexed_node;
-<a name="l00057"></a>00057 }
-<a name="l00058"></a>00058
-<a name="l00059"></a><a class="code" href="sll_8h.html#a0751beeb21d1540c9ddcd5e01964e23e">00059</a> <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="sll_8c.html#a0751beeb21d1540c9ddcd5e01964e23e" title="Adds a new node to an existing linked list.">sll_add</a>( <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list, <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a> )
-<a name="l00060"></a>00060 {
-<a name="l00061"></a>00061 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="structnode.html" title="A node in a hash table.">node</a> = <a class="code" href="sll_8c.html#af7327f24d1900d495c1bf914a592b631" title="Finds and returns the last node in the supplied linked list.">sll_last</a>( list );
-<a name="l00062"></a>00062 node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a> = <a class="code" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value.">sll_new</a>( contents );
-<a name="l00063"></a>00063 }
-<a name="l00064"></a>00064
-<a name="l00065"></a><a class="code" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f">00065</a> <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="sll_8c.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index.">sll_insert</a>( <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list, <span class="keywordtype">int</span> index, <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a> )
-<a name="l00066"></a>00066 {
-<a name="l00067"></a>00067 <span class="keywordtype">int</span> req_index = ((index-1) < 0) ? 0 : index-1;
-<a name="l00068"></a>00068 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="structnode.html" title="A node in a hash table.">node</a> = <a class="code" href="sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" title="Return the node at the specified index in a linked list.">sll_get</a>( list, req_index );
-<a name="l00069"></a>00069 <span class="keywordflow">if</span>(node != NULL)
-<a name="l00070"></a>00070 {
-<a name="l00071"></a>00071 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* next_next = node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00072"></a>00072 node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a> = <a class="code" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value.">sll_new</a>( contents );
-<a name="l00073"></a>00073 node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a> = next_next;
-<a name="l00074"></a>00074 node = node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00075"></a>00075 }
-<a name="l00076"></a>00076 <span class="keywordflow">return</span> node;
-<a name="l00077"></a>00077 }
-<a name="l00078"></a>00078
-<a name="l00079"></a><a class="code" href="sll_8h.html#afd494f171c24981f0d7a007841f21cfe">00079</a> <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="sll_8c.html#afd494f171c24981f0d7a007841f21cfe" title="Deletes a node from the supplied list.">sll_delete</a>( <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> free_contents)
-<a name="l00080"></a>00080 {
-<a name="l00081"></a>00081 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="structnode.html" title="A node in a hash table.">node</a> = <a class="code" href="sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" title="Return the node at the specified index in a linked list.">sll_get</a>( list, (index-1));
-<a name="l00082"></a>00082 <span class="keywordflow">if</span>((node != NULL) && (node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a> != NULL))
-<a name="l00083"></a>00083 {
-<a name="l00084"></a>00084 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* node_to_delete = node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00085"></a>00085 node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a> = node_to_delete-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00086"></a>00086 <span class="keywordflow">if</span> (free_contents)
-<a name="l00087"></a>00087 {
-<a name="l00088"></a>00088 free(node_to_delete-><a class="code" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a>);
-<a name="l00089"></a>00089 }
-<a name="l00090"></a>00090 free(node_to_delete);
-<a name="l00091"></a>00091 node = node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00092"></a>00092 }
-<a name="l00093"></a>00093 <span class="keywordflow">return</span> node;
-<a name="l00094"></a>00094 }
-<a name="l00095"></a>00095
-<a name="l00096"></a><a class="code" href="sll_8h.html#a7373cc6bac0876b330da73722e24910b">00096</a> <span class="keywordtype">void</span> <a class="code" href="sll_8c.html#a7373cc6bac0876b330da73722e24910b" title="Frees all memory used by a linked list.">sll_free</a>( <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list, <span class="keywordtype">int</span> free_contents)
-<a name="l00097"></a>00097 {
-<a name="l00098"></a>00098 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="structnode.html" title="A node in a hash table.">node</a> = list;
-<a name="l00099"></a>00099 <span class="keywordflow">while</span>( node != NULL )
-<a name="l00100"></a>00100 {
-<a name="l00101"></a>00101 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a> = node-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00102"></a>00102 <span class="keywordflow">if</span> (free_contents)
-<a name="l00103"></a>00103 {
-<a name="l00104"></a>00104 free(node-><a class="code" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a>);
-<a name="l00105"></a>00105 }
-<a name="l00106"></a>00106 free(node);
-<a name="l00107"></a>00107 node = <a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00108"></a>00108 }
-<a name="l00109"></a>00109 }
-<a name="l00110"></a>00110
-<a name="l00111"></a><a class="code" href="sll_8h.html#af5f6589df6d0ef48ed6f57ac5527ddfe">00111</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="sll_8c.html#af5f6589df6d0ef48ed6f57ac5527ddfe" title="Returns the number of elements in the list.">sll_length</a>(<a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list)
-<a name="l00112"></a>00112 {
-<a name="l00113"></a>00113 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length = 0;
-<a name="l00114"></a>00114 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* item = list;
-<a name="l00115"></a>00115 <span class="keywordflow">for</span> ( item = list; item != NULL; item = item-><a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a> )
-<a name="l00116"></a>00116 {
-<a name="l00117"></a>00117 length++;
-<a name="l00118"></a>00118 }
-<a name="l00119"></a>00119 <span class="keywordflow">return</span> length;
-<a name="l00120"></a>00120 }
-<a name="l00121"></a>00121
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2012, Michael D. Lowis</span>
+<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"> *</span>
+<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
+<a name="l00009"></a>00009 <span class="comment"> * this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice,</span>
+<a name="l00012"></a>00012 <span class="comment"> * this list of conditions and the following disclaimer in the documentation</span>
+<a name="l00013"></a>00013 <span class="comment"> * and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"> *</span>
+<a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span>
+<a name="l00016"></a>00016 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span>
+<a name="l00019"></a>00019 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00020"></a>00020 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00021"></a>00021 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00022"></a>00022 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00023"></a>00023 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00024"></a>00024 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
+<a name="l00025"></a>00025 <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00026"></a>00026 <span class="comment"> *****************************************************************************/</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="sll_8h.html">sll.h</a>"</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include <stdlib.h></span>
+<a name="l00029"></a>00029
+<a name="l00030"></a><a class="code" href="sll_8h.html#a471151d11dc385e3364c9a38b19ecba7">00030</a> <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value.">sll_new</a>( <span class="keywordtype">void</span>* contents )
+<a name="l00031"></a>00031 {
+<a name="l00032"></a>00032 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list = (<a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>*)malloc( <span class="keyword">sizeof</span>(<a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>) );
+<a name="l00033"></a>00033 list-><a class="code" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c" title="Pointer to the contents the node.">contents</a> = contents;
+<a name="l00034"></a>00034 list-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a> = NULL;
+<a name="l00035"></a>00035 <span class="keywordflow">return</span> list;
+<a name="l00036"></a>00036 }
+<a name="l00037"></a>00037
+<a name="l00038"></a><a class="code" href="sll_8h.html#abe6fe02fbfcbf1d647ff94295b855e7e">00038</a> <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#abe6fe02fbfcbf1d647ff94295b855e7e" title="Finds and returns the first node in the supplied linked list.">sll_front</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list )
+<a name="l00039"></a>00039 {
+<a name="l00040"></a>00040 }
+<a name="l00041"></a>00041
+<a name="l00042"></a><a class="code" href="sll_8h.html#a78ef5151212d47bb63f2fd93453283ed">00042</a> <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#a78ef5151212d47bb63f2fd93453283ed" title="Finds and returns the last node in the supplied linked list.">sll_back</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list )
+<a name="l00043"></a>00043 {
+<a name="l00044"></a>00044 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* node = list;
+<a name="l00045"></a>00045 <span class="keywordflow">while</span>((node != NULL) && (node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a> != NULL))
+<a name="l00046"></a>00046 {
+<a name="l00047"></a>00047 node = node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a>;
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049 <span class="keywordflow">return</span> node;
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051
+<a name="l00052"></a><a class="code" href="sll_8h.html#a0582f263482ead73d53b018978513540">00052</a> <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#a0582f263482ead73d53b018978513540" title="Return the node at the specified index in a linked list.">sll_index</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list, <span class="keywordtype">int</span> index )
+<a name="l00053"></a>00053 {
+<a name="l00054"></a>00054 <span class="keywordtype">int</span> current = 0;
+<a name="l00055"></a>00055 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* node = list;
+<a name="l00056"></a>00056 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* indexed_node = NULL;
+<a name="l00057"></a>00057 <span class="keywordflow">while</span> ((node != NULL))
+<a name="l00058"></a>00058 {
+<a name="l00059"></a>00059 <span class="keywordflow">if</span> ( current == index )
+<a name="l00060"></a>00060 {
+<a name="l00061"></a>00061 indexed_node = node;
+<a name="l00062"></a>00062 <span class="keywordflow">break</span>;
+<a name="l00063"></a>00063 }
+<a name="l00064"></a>00064 node = node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a>;
+<a name="l00065"></a>00065 current++;
+<a name="l00066"></a>00066 }
+<a name="l00067"></a>00067 <span class="keywordflow">return</span> indexed_node;
+<a name="l00068"></a>00068 }
+<a name="l00069"></a>00069
+<a name="l00070"></a><a class="code" href="sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0">00070</a> <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" title="Adds a new node to the end of an existing linked list.">sll_push_back</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list, <span class="keywordtype">void</span>* contents )
+<a name="l00071"></a>00071 {
+<a name="l00072"></a>00072 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* node = <a class="code" href="sll_8c.html#a78ef5151212d47bb63f2fd93453283ed" title="Finds and returns the last node in the supplied linked list.">sll_back</a>( list );
+<a name="l00073"></a>00073 node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a> = <a class="code" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value.">sll_new</a>( contents );
+<a name="l00074"></a>00074 }
+<a name="l00075"></a>00075
+<a name="l00076"></a><a class="code" href="sll_8h.html#acfe3ebc296fe75f1d0ee21195dd7b9bf">00076</a> <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#acfe3ebc296fe75f1d0ee21195dd7b9bf" title="Adds a new node to the front of an existing linked list.">sll_push_front</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list, <span class="keywordtype">void</span>* contents )
+<a name="l00077"></a>00077 {
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079
+<a name="l00080"></a><a class="code" href="sll_8h.html#af72e93329186ac936d2bf6f544aa1f6b">00080</a> <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#af72e93329186ac936d2bf6f544aa1f6b" title="Removes and returns a pointer to the last element of the list.">sll_pop_back</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list )
+<a name="l00081"></a>00081 {
+<a name="l00082"></a>00082 }
+<a name="l00083"></a>00083
+<a name="l00084"></a><a class="code" href="sll_8h.html#a1588e5a1f90852ee48403d5313d64269">00084</a> <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#a1588e5a1f90852ee48403d5313d64269" title="Removes and returns a pointer to the first element of the list.">sll_pop_front</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list )
+<a name="l00085"></a>00085 {
+<a name="l00086"></a>00086 }
+<a name="l00087"></a>00087
+<a name="l00088"></a><a class="code" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f">00088</a> <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index.">sll_insert</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list, <span class="keywordtype">int</span> index, <span class="keywordtype">void</span>* contents )
+<a name="l00089"></a>00089 {
+<a name="l00090"></a>00090 <span class="keywordtype">int</span> req_index = ((index-1) < 0) ? 0 : index-1;
+<a name="l00091"></a>00091 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* node = <a class="code" href="sll_8c.html#a0582f263482ead73d53b018978513540" title="Return the node at the specified index in a linked list.">sll_index</a>( list, req_index );
+<a name="l00092"></a>00092 <span class="keywordflow">if</span>(node != NULL)
+<a name="l00093"></a>00093 {
+<a name="l00094"></a>00094 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* next_next = node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a>;
+<a name="l00095"></a>00095 node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a> = <a class="code" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value.">sll_new</a>( contents );
+<a name="l00096"></a>00096 node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a>-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a> = next_next;
+<a name="l00097"></a>00097 node = node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a>;
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099 <span class="keywordflow">return</span> node;
+<a name="l00100"></a>00100 }
+<a name="l00101"></a>00101
+<a name="l00102"></a><a class="code" href="sll_8h.html#afd494f171c24981f0d7a007841f21cfe">00102</a> <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#afd494f171c24981f0d7a007841f21cfe" title="Deletes a node from the supplied list.">sll_delete</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> free_contents)
+<a name="l00103"></a>00103 {
+<a name="l00104"></a>00104 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* node = <a class="code" href="sll_8c.html#a0582f263482ead73d53b018978513540" title="Return the node at the specified index in a linked list.">sll_index</a>( list, (index-1));
+<a name="l00105"></a>00105 <span class="keywordflow">if</span>((node != NULL) && (node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a> != NULL))
+<a name="l00106"></a>00106 {
+<a name="l00107"></a>00107 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* node_to_delete = node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a>;
+<a name="l00108"></a>00108 node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a> = node_to_delete-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a>;
+<a name="l00109"></a>00109 <span class="keywordflow">if</span> (free_contents)
+<a name="l00110"></a>00110 {
+<a name="l00111"></a>00111 free(node_to_delete-><a class="code" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c" title="Pointer to the contents the node.">contents</a>);
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113 free(node_to_delete);
+<a name="l00114"></a>00114 node = node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a>;
+<a name="l00115"></a>00115 }
+<a name="l00116"></a>00116 <span class="keywordflow">return</span> node;
+<a name="l00117"></a>00117 }
+<a name="l00118"></a>00118
+<a name="l00119"></a><a class="code" href="sll_8h.html#a7373cc6bac0876b330da73722e24910b">00119</a> <span class="keywordtype">void</span> <a class="code" href="sll_8c.html#a7373cc6bac0876b330da73722e24910b" title="Frees all memory used by a linked list.">sll_free</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list, <span class="keywordtype">int</span> free_contents)
+<a name="l00120"></a>00120 {
+<a name="l00121"></a>00121 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* node = list;
+<a name="l00122"></a>00122 <span class="keywordflow">while</span>( node != NULL )
+<a name="l00123"></a>00123 {
+<a name="l00124"></a>00124 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* next = node-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a>;
+<a name="l00125"></a>00125 <span class="keywordflow">if</span> (free_contents)
+<a name="l00126"></a>00126 {
+<a name="l00127"></a>00127 free(node-><a class="code" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c" title="Pointer to the contents the node.">contents</a>);
+<a name="l00128"></a>00128 }
+<a name="l00129"></a>00129 free(node);
+<a name="l00130"></a>00130 node = next;
+<a name="l00131"></a>00131 }
+<a name="l00132"></a>00132 }
+<a name="l00133"></a>00133
+<a name="l00134"></a><a class="code" href="sll_8h.html#af5f6589df6d0ef48ed6f57ac5527ddfe">00134</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="sll_8c.html#af5f6589df6d0ef48ed6f57ac5527ddfe" title="Returns the number of elements in the list.">sll_length</a>(<a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list)
+<a name="l00135"></a>00135 {
+<a name="l00136"></a>00136 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length = 0;
+<a name="l00137"></a>00137 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* item = list;
+<a name="l00138"></a>00138 <span class="keywordflow">for</span> ( item = list; item != NULL; item = item-><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a> )
+<a name="l00139"></a>00139 {
+<a name="l00140"></a>00140 length++;
+<a name="l00141"></a>00141 }
+<a name="l00142"></a>00142 <span class="keywordflow">return</span> length;
+<a name="l00143"></a>00143 }
+<a name="l00144"></a>00144
</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="sll_8c.html">sll.c</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:03 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structnode.html">node</a></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">A node in a hash table. <a href="structnode.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structsll__node.html">sll_node</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">A linked list node. <a href="structsll__node.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structnode.html">node</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a74030fe22c7f9308540aee0c4259b111">sll_node</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structsll__node.html">sll_node</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a168d63554ec6362ceecf64acc3e15bce">sll_node</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">A linked list node. <a href="#a168d63554ec6362ceecf64acc3e15bce"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a471151d11dc385e3364c9a38b19ecba7">sll_new</a> (void *contents)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a471151d11dc385e3364c9a38b19ecba7">sll_new</a> (void *contents)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new linked list node with the supplied value. <a href="#a471151d11dc385e3364c9a38b19ecba7"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#af7327f24d1900d495c1bf914a592b631">sll_last</a> (<a class="el" href="structnode.html">sll_node</a> *list)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds and returns the last node in the supplied linked list. <a href="#af7327f24d1900d495c1bf914a592b631"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#aaf7e4557200dec55dec679f63de2b4d1">sll_get</a> (<a class="el" href="structnode.html">sll_node</a> *list, int index)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the node at the specified index in a linked list. <a href="#aaf7e4557200dec55dec679f63de2b4d1"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a0751beeb21d1540c9ddcd5e01964e23e">sll_add</a> (<a class="el" href="structnode.html">sll_node</a> *list, void *contents)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a new node to an existing linked list. <a href="#a0751beeb21d1540c9ddcd5e01964e23e"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f">sll_insert</a> (<a class="el" href="structnode.html">sll_node</a> *list, int index, void *contents)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#abe6fe02fbfcbf1d647ff94295b855e7e">sll_front</a> (<a class="el" href="structsll__node.html">sll_node</a> *list)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds and returns the first node in the supplied linked list. <a href="#abe6fe02fbfcbf1d647ff94295b855e7e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a78ef5151212d47bb63f2fd93453283ed">sll_back</a> (<a class="el" href="structsll__node.html">sll_node</a> *list)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds and returns the last node in the supplied linked list. <a href="#a78ef5151212d47bb63f2fd93453283ed"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a0582f263482ead73d53b018978513540">sll_index</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, int index)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the node at the specified index in a linked list. <a href="#a0582f263482ead73d53b018978513540"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0">sll_push_back</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, void *contents)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a new node to the end of an existing linked list. <a href="#a19ad0a86a87451a3ab68ad6d18c3e3e0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#acfe3ebc296fe75f1d0ee21195dd7b9bf">sll_push_front</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, void *contents)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a new node to the front of an existing linked list. <a href="#acfe3ebc296fe75f1d0ee21195dd7b9bf"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#af72e93329186ac936d2bf6f544aa1f6b">sll_pop_back</a> (<a class="el" href="structsll__node.html">sll_node</a> *list)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes and returns a pointer to the last element of the list. <a href="#af72e93329186ac936d2bf6f544aa1f6b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a1588e5a1f90852ee48403d5313d64269">sll_pop_front</a> (<a class="el" href="structsll__node.html">sll_node</a> *list)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes and returns a pointer to the first element of the list. <a href="#a1588e5a1f90852ee48403d5313d64269"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f">sll_insert</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, int index, void *contents)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Inserts a new node in a linked list at the specified index. <a href="#a66769edc21579f71972ac90de6da4a9f"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#afd494f171c24981f0d7a007841f21cfe">sll_delete</a> (<a class="el" href="structnode.html">sll_node</a> *list, int index, int free_contents)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#afd494f171c24981f0d7a007841f21cfe">sll_delete</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, int index, int free_contents)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes a node from the supplied list. <a href="#afd494f171c24981f0d7a007841f21cfe"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a7373cc6bac0876b330da73722e24910b">sll_free</a> (<a class="el" href="structnode.html">sll_node</a> *list, int free_contents)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a7373cc6bac0876b330da73722e24910b">sll_free</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, int free_contents)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees all memory used by a linked list. <a href="#a7373cc6bac0876b330da73722e24910b"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#af5f6589df6d0ef48ed6f57ac5527ddfe">sll_length</a> (<a class="el" href="structnode.html">sll_node</a> *list)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#af5f6589df6d0ef48ed6f57ac5527ddfe">sll_length</a> (<a class="el" href="structsll__node.html">sll_node</a> *list)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of elements in the list. <a href="#af5f6589df6d0ef48ed6f57ac5527ddfe"></a><br/></td></tr>
</table>
<hr/><h2>Typedef Documentation</h2>
-<a class="anchor" id="a74030fe22c7f9308540aee0c4259b111"></a><!-- doxytag: member="sll.h::sll_node" ref="a74030fe22c7f9308540aee0c4259b111" args="" -->
+<a class="anchor" id="a168d63554ec6362ceecf64acc3e15bce"></a><!-- doxytag: member="sll.h::sll_node" ref="a168d63554ec6362ceecf64acc3e15bce" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef struct <a class="el" href="structnode.html">node</a> <a class="el" href="structnode.html">sll_node</a></td>
+ <td class="memname">typedef struct <a class="el" href="structsll__node.html">sll_node</a> <a class="el" href="structsll__node.html">sll_node</a></td>
</tr>
</table>
</div>
<div class="memdoc">
+<p>A linked list node. </p>
+
</div>
</div>
<hr/><h2>Function Documentation</h2>
-<a class="anchor" id="a0751beeb21d1540c9ddcd5e01964e23e"></a><!-- doxytag: member="sll.h::sll_add" ref="a0751beeb21d1540c9ddcd5e01964e23e" args="(sll_node *list, void *contents)" -->
+<a class="anchor" id="a78ef5151212d47bb63f2fd93453283ed"></a><!-- doxytag: member="sll.h::sll_back" ref="a78ef5151212d47bb63f2fd93453283ed" args="(sll_node *list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">sll_node</a>* sll_add </td>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_back </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
- <td class="paramname"><em>list</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>contents</em> </td>
- </tr>
- <tr>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
+ <td class="paramname"><em>list</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
-<p>Adds a new node to an existing linked list. </p>
+<p>Finds and returns the last node in the supplied linked list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
- <tr><td class="paramname">list</td><td></td></tr>
- <tr><td class="paramname">contents</td><td></td></tr>
+ <tr><td class="paramname">list</td><td>The linked list to search.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly added node. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the last node in the supplied list. </dd></dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00059">59</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00042">42</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
<p><div class="dynheader">
-Here is the call graph for this function:</div>
+Here is the caller graph for this function:</div>
<div class="dyncontent">
-<div class="center"><img src="sll_8h_a0751beeb21d1540c9ddcd5e01964e23e_cgraph.png" border="0" usemap="#sll_8h_a0751beeb21d1540c9ddcd5e01964e23e_cgraph" alt=""/></div>
-<map name="sll_8h_a0751beeb21d1540c9ddcd5e01964e23e_cgraph" id="sll_8h_a0751beeb21d1540c9ddcd5e01964e23e_cgraph">
-<area shape="rect" id="node3" href="sll_8c.html#af7327f24d1900d495c1bf914a592b631" title="Finds and returns the last node in the supplied linked list." alt="" coords="120,5,181,35"/>\r<area shape="rect" id="node5" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="119,59,183,88"/>\r</map>
+<div class="center"><img src="sll_8h_a78ef5151212d47bb63f2fd93453283ed_icgraph.png" border="0" usemap="#sll_8h_a78ef5151212d47bb63f2fd93453283ed_icgraph" alt=""/></div>
+<map name="sll_8h_a78ef5151212d47bb63f2fd93453283ed_icgraph" id="sll_8h_a78ef5151212d47bb63f2fd93453283ed_icgraph">
+<area shape="rect" id="node3" href="sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" title="Adds a new node to the end of an existing linked list." alt="" coords="127,5,231,35"/>\r</map>
</div>
</p>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">sll_node</a>* sll_delete </td>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_delete </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
<td class="paramname"><em>list</em>, </td>
</tr>
<tr>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the node that is now at the supplied index. </dd></dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00079">79</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00102">102</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="sll_8h_afd494f171c24981f0d7a007841f21cfe_cgraph.png" border="0" usemap="#sll_8h_afd494f171c24981f0d7a007841f21cfe_cgraph" alt=""/></div>
<map name="sll_8h_afd494f171c24981f0d7a007841f21cfe_cgraph" id="sll_8h_afd494f171c24981f0d7a007841f21cfe_cgraph">
-<area shape="rect" id="node3" href="sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" title="Return the node at the specified index in a linked list." alt="" coords="132,5,191,35"/>\r</map>
+<area shape="rect" id="node3" href="sll_8c.html#a0582f263482ead73d53b018978513540" title="Return the node at the specified index in a linked list." alt="" coords="132,5,204,35"/>\r</map>
</div>
</p>
<tr>
<td class="memname">void sll_free </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
<td class="paramname"><em>list</em>, </td>
</tr>
<tr>
</dd>
</dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00096">96</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00119">119</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
</div>
</div>
-<a class="anchor" id="aaf7e4557200dec55dec679f63de2b4d1"></a><!-- doxytag: member="sll.h::sll_get" ref="aaf7e4557200dec55dec679f63de2b4d1" args="(sll_node *list, int index)" -->
+<a class="anchor" id="abe6fe02fbfcbf1d647ff94295b855e7e"></a><!-- doxytag: member="sll.h::sll_front" ref="abe6fe02fbfcbf1d647ff94295b855e7e" args="(sll_node *list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">sll_node</a>* sll_get </td>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_front </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
+ <td class="paramname"><em>list</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Finds and returns the first node in the supplied linked list. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">list</td><td>The linked list to search.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the last node in the supplied list. </dd></dl>
+
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00038">38</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0582f263482ead73d53b018978513540"></a><!-- doxytag: member="sll.h::sll_index" ref="a0582f263482ead73d53b018978513540" args="(sll_node *list, int index)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_index </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
<td class="paramname"><em>list</em>, </td>
</tr>
<tr>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the node and the supplied index, NULL if out of range. </dd></dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00041">41</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00052">52</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
-<div class="center"><img src="sll_8h_aaf7e4557200dec55dec679f63de2b4d1_icgraph.png" border="0" usemap="#sll_8h_aaf7e4557200dec55dec679f63de2b4d1_icgraph" alt=""/></div>
-<map name="sll_8h_aaf7e4557200dec55dec679f63de2b4d1_icgraph" id="sll_8h_aaf7e4557200dec55dec679f63de2b4d1_icgraph">
-<area shape="rect" id="node3" href="sll_8h.html#afd494f171c24981f0d7a007841f21cfe" title="Deletes a node from the supplied list." alt="" coords="115,5,192,35"/>\r<area shape="rect" id="node5" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="116,59,191,88"/>\r</map>
+<div class="center"><img src="sll_8h_a0582f263482ead73d53b018978513540_icgraph.png" border="0" usemap="#sll_8h_a0582f263482ead73d53b018978513540_icgraph" alt=""/></div>
+<map name="sll_8h_a0582f263482ead73d53b018978513540_icgraph" id="sll_8h_a0582f263482ead73d53b018978513540_icgraph">
+<area shape="rect" id="node3" href="sll_8h.html#afd494f171c24981f0d7a007841f21cfe" title="Deletes a node from the supplied list." alt="" coords="128,5,205,35"/>\r<area shape="rect" id="node5" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="129,59,204,88"/>\r</map>
</div>
</p>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">sll_node</a>* sll_insert </td>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_insert </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
<td class="paramname"><em>list</em>, </td>
</tr>
<tr>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly inserted node, NULL if index is out of range. </dd></dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00065">65</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00088">88</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="sll_8h_a66769edc21579f71972ac90de6da4a9f_cgraph.png" border="0" usemap="#sll_8h_a66769edc21579f71972ac90de6da4a9f_cgraph" alt=""/></div>
<map name="sll_8h_a66769edc21579f71972ac90de6da4a9f_cgraph" id="sll_8h_a66769edc21579f71972ac90de6da4a9f_cgraph">
-<area shape="rect" id="node3" href="sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" title="Return the node at the specified index in a linked list." alt="" coords="132,5,191,35"/>\r<area shape="rect" id="node5" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="129,59,193,88"/>\r</map>
+<area shape="rect" id="node3" href="sll_8c.html#a0582f263482ead73d53b018978513540" title="Return the node at the specified index in a linked list." alt="" coords="129,5,201,35"/>\r<area shape="rect" id="node5" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="133,59,197,88"/>\r</map>
</div>
</p>
</div>
</div>
-<a class="anchor" id="af7327f24d1900d495c1bf914a592b631"></a><!-- doxytag: member="sll.h::sll_last" ref="af7327f24d1900d495c1bf914a592b631" args="(sll_node *list)" -->
+<a class="anchor" id="af5f6589df6d0ef48ed6f57ac5527ddfe"></a><!-- doxytag: member="sll.h::sll_length" ref="af5f6589df6d0ef48ed6f57ac5527ddfe" args="(sll_node *list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">sll_node</a>* sll_last </td>
+ <td class="memname">unsigned int sll_length </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
<td class="paramname"><em>list</em></td><td>)</td>
<td></td>
</tr>
</div>
<div class="memdoc">
-<p>Finds and returns the last node in the supplied linked list. </p>
+<p>Returns the number of elements in the list. </p>
+<p>Loops through the supplied list and returns a count of the number of elements contained in the list.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
- <tr><td class="paramname">list</td><td>The linked list to search.</td></tr>
+ <tr><td class="paramname">list</td><td>The list to be counted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the last node in the supplied list. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The number of elements in the list. </dd></dl>
+
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00134">134</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a471151d11dc385e3364c9a38b19ecba7"></a><!-- doxytag: member="sll.h::sll_new" ref="a471151d11dc385e3364c9a38b19ecba7" args="(void *contents)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_new </td>
+ <td>(</td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>contents</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00031">31</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Creates a new linked list node with the supplied value. </p>
+<p>This function allocates a new node on the heap and populates the node contents with the supplied contents pointer.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">contents</td><td>The contents of the newly created node.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the newly created node. </dd></dl>
+
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00030">30</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
-<div class="center"><img src="sll_8h_af7327f24d1900d495c1bf914a592b631_icgraph.png" border="0" usemap="#sll_8h_af7327f24d1900d495c1bf914a592b631_icgraph" alt=""/></div>
-<map name="sll_8h_af7327f24d1900d495c1bf914a592b631_icgraph" id="sll_8h_af7327f24d1900d495c1bf914a592b631_icgraph">
-<area shape="rect" id="node3" href="sll_8h.html#a0751beeb21d1540c9ddcd5e01964e23e" title="Adds a new node to an existing linked list." alt="" coords="119,5,180,35"/>\r</map>
+<div class="center"><img src="sll_8h_a471151d11dc385e3364c9a38b19ecba7_icgraph.png" border="0" usemap="#sll_8h_a471151d11dc385e3364c9a38b19ecba7_icgraph" alt=""/></div>
+<map name="sll_8h_a471151d11dc385e3364c9a38b19ecba7_icgraph" id="sll_8h_a471151d11dc385e3364c9a38b19ecba7_icgraph">
+<area shape="rect" id="node3" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="136,5,211,35"/>\r<area shape="rect" id="node5" href="sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" title="Adds a new node to the end of an existing linked list." alt="" coords="121,59,225,88"/>\r</map>
</div>
</p>
</div>
</div>
-<a class="anchor" id="af5f6589df6d0ef48ed6f57ac5527ddfe"></a><!-- doxytag: member="sll.h::sll_length" ref="af5f6589df6d0ef48ed6f57ac5527ddfe" args="(sll_node *list)" -->
+<a class="anchor" id="af72e93329186ac936d2bf6f544aa1f6b"></a><!-- doxytag: member="sll.h::sll_pop_back" ref="af72e93329186ac936d2bf6f544aa1f6b" args="(sll_node *list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">unsigned int sll_length </td>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_pop_back </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structnode.html">sll_node</a> * </td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
<td class="paramname"><em>list</em></td><td>)</td>
<td></td>
</tr>
</div>
<div class="memdoc">
-<p>Returns the number of elements in the list. </p>
-<p>Loops through the supplied list and returns a count of the number of elements contained in the list.</p>
+<p>Removes and returns a pointer to the last element of the list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
- <tr><td class="paramname">list</td><td>The list to be counted.</td></tr>
+ <tr><td class="paramname">list</td><td></td></tr>
+ <tr><td class="paramname">contents</td><td></td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The number of elements in the list. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly added node. </dd></dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00111">111</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00080">80</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
</div>
</div>
-<a class="anchor" id="a471151d11dc385e3364c9a38b19ecba7"></a><!-- doxytag: member="sll.h::sll_new" ref="a471151d11dc385e3364c9a38b19ecba7" args="(void *contents)" -->
+<a class="anchor" id="a1588e5a1f90852ee48403d5313d64269"></a><!-- doxytag: member="sll.h::sll_pop_front" ref="a1588e5a1f90852ee48403d5313d64269" args="(sll_node *list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">sll_node</a>* sll_new </td>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_pop_front </td>
<td>(</td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
+ <td class="paramname"><em>list</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Removes and returns a pointer to the first element of the list. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">list</td><td></td></tr>
+ <tr><td class="paramname">contents</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly added node. </dd></dl>
+
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00084">84</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a19ad0a86a87451a3ab68ad6d18c3e3e0"></a><!-- doxytag: member="sll.h::sll_push_back" ref="a19ad0a86a87451a3ab68ad6d18c3e3e0" args="(sll_node *list, void *contents)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_push_back </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
+ <td class="paramname"><em>list</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
<td class="paramtype">void * </td>
- <td class="paramname"><em>contents</em></td><td>)</td>
+ <td class="paramname"><em>contents</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
-<p>Creates a new linked list node with the supplied value. </p>
-<p>Allocates a new node on the heap and populates the node contents with the supplied contents pointer.</p>
+<p>Adds a new node to the end of an existing linked list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
- <tr><td class="paramname">contents</td><td>The contents of the newly created node.</td></tr>
+ <tr><td class="paramname">list</td><td></td></tr>
+ <tr><td class="paramname">contents</td><td></td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the newly created node. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly added node. </dd></dl>
-<p>Definition at line <a class="el" href="sll_8c_source.html#l00023">23</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00070">70</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
<p><div class="dynheader">
-Here is the caller graph for this function:</div>
+Here is the call graph for this function:</div>
<div class="dyncontent">
-<div class="center"><img src="sll_8h_a471151d11dc385e3364c9a38b19ecba7_icgraph.png" border="0" usemap="#sll_8h_a471151d11dc385e3364c9a38b19ecba7_icgraph" alt=""/></div>
-<map name="sll_8h_a471151d11dc385e3364c9a38b19ecba7_icgraph" id="sll_8h_a471151d11dc385e3364c9a38b19ecba7_icgraph">
-<area shape="rect" id="node3" href="sll_8h.html#a0751beeb21d1540c9ddcd5e01964e23e" title="Adds a new node to an existing linked list." alt="" coords="127,5,188,35"/>\r<area shape="rect" id="node5" href="sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="120,59,195,88"/>\r</map>
+<div class="center"><img src="sll_8h_a19ad0a86a87451a3ab68ad6d18c3e3e0_cgraph.png" border="0" usemap="#sll_8h_a19ad0a86a87451a3ab68ad6d18c3e3e0_cgraph" alt=""/></div>
+<map name="sll_8h_a19ad0a86a87451a3ab68ad6d18c3e3e0_cgraph" id="sll_8h_a19ad0a86a87451a3ab68ad6d18c3e3e0_cgraph">
+<area shape="rect" id="node3" href="sll_8c.html#a78ef5151212d47bb63f2fd93453283ed" title="Finds and returns the last node in the supplied linked list." alt="" coords="161,5,231,35"/>\r<area shape="rect" id="node5" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="164,59,228,88"/>\r</map>
</div>
</p>
+</div>
+</div>
+<a class="anchor" id="acfe3ebc296fe75f1d0ee21195dd7b9bf"></a><!-- doxytag: member="sll.h::sll_push_front" ref="acfe3ebc296fe75f1d0ee21195dd7b9bf" args="(sll_node *list, void *contents)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structsll__node.html">sll_node</a>* sll_push_front </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> * </td>
+ <td class="paramname"><em>list</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>contents</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Adds a new node to the front of an existing linked list. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">list</td><td></td></tr>
+ <tr><td class="paramname">contents</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the newly added node. </dd></dl>
+
+<p>Definition at line <a class="el" href="sll_8c_source.html#l00076">76</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
+
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="sll_8h.html">sll.h</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
--- /dev/null
+<map id="G" name="G">
+<area shape="rect" id="node3" href="$sll_8h.html#afd494f171c24981f0d7a007841f21cfe" title="Deletes a node from the supplied list." alt="" coords="128,5,205,35"/>
+<area shape="rect" id="node5" href="$sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="129,59,204,88"/>
+</map>
--- /dev/null
+b6584d19ee0d40d5efb71710f0e680e9
\ No newline at end of file
--- /dev/null
+<map id="G" name="G">
+<area shape="rect" id="node3" href="$sll_8c.html#a78ef5151212d47bb63f2fd93453283ed" title="Finds and returns the last node in the supplied linked list." alt="" coords="161,5,231,35"/>
+<area shape="rect" id="node5" href="$sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="164,59,228,88"/>
+</map>
--- /dev/null
+f0eaae5a00fe62d72874f4a790f93d86
\ No newline at end of file
<map id="G" name="G">
-<area shape="rect" id="node3" href="$sll_8h.html#a0751beeb21d1540c9ddcd5e01964e23e" title="Adds a new node to an existing linked list." alt="" coords="127,5,188,35"/>
-<area shape="rect" id="node5" href="$sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="120,59,195,88"/>
+<area shape="rect" id="node3" href="$sll_8h.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index." alt="" coords="136,5,211,35"/>
+<area shape="rect" id="node5" href="$sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" title="Adds a new node to the end of an existing linked list." alt="" coords="121,59,225,88"/>
</map>
-1ae6766da0c2ac7f937ec87db8fab253
\ No newline at end of file
+24311e03e208ca06ba4307b0636c7bf5
\ No newline at end of file
<map id="G" name="G">
-<area shape="rect" id="node3" href="$sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" title="Return the node at the specified index in a linked list." alt="" coords="132,5,191,35"/>
-<area shape="rect" id="node5" href="$sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="129,59,193,88"/>
+<area shape="rect" id="node3" href="$sll_8c.html#a0582f263482ead73d53b018978513540" title="Return the node at the specified index in a linked list." alt="" coords="129,5,201,35"/>
+<area shape="rect" id="node5" href="$sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value." alt="" coords="133,59,197,88"/>
</map>
-ff11d8f8b0b38a1b305a7bf13e6f2952
\ No newline at end of file
+493ae324bbbeae2a5e2343119345e996
\ No newline at end of file
--- /dev/null
+<map id="G" name="G">
+<area shape="rect" id="node3" href="$sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" title="Adds a new node to the end of an existing linked list." alt="" coords="127,5,231,35"/>
+</map>
--- /dev/null
+ec7827fa24fb39aad7229bcdca5234c5
\ No newline at end of file
<map id="G" name="G">
-<area shape="rect" id="node3" href="$sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" title="Return the node at the specified index in a linked list." alt="" coords="132,5,191,35"/>
+<area shape="rect" id="node3" href="$sll_8c.html#a0582f263482ead73d53b018978513540" title="Return the node at the specified index in a linked list." alt="" coords="132,5,204,35"/>
</map>
-2b69d7a9b9aa88a844d7bbc6333b6f89
\ No newline at end of file
+0421e0bf499fbdebfb519e23e96452d9
\ No newline at end of file
</div>
<div class="contents">
<a href="sll_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span>
-<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2011 Michael D. Lowis</span>
-<a name="l00003"></a>00003 <span class="comment"> *</span>
-<a name="l00004"></a>00004 <span class="comment"> * This program is free software: you can redistribute it and/or modify</span>
-<a name="l00005"></a>00005 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
-<a name="l00006"></a>00006 <span class="comment"> * the Free Software Foundation, either version 3 of the License, or</span>
-<a name="l00007"></a>00007 <span class="comment"> * (at your option) any later version.</span>
-<a name="l00008"></a>00008 <span class="comment"> *</span>
-<a name="l00009"></a>00009 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
-<a name="l00010"></a>00010 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
-<a name="l00011"></a>00011 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
-<a name="l00012"></a>00012 <span class="comment"> * GNU General Public License for more details.</span>
-<a name="l00013"></a>00013 <span class="comment"> *</span>
-<a name="l00014"></a>00014 <span class="comment"> * You should have received a copy of the GNU General Public License</span>
-<a name="l00015"></a>00015 <span class="comment"> * along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
-<a name="l00016"></a>00016 <span class="comment"> *****************************************************************************/</span>
-<a name="l00017"></a>00017 <span class="preprocessor">#ifndef LINKED_LIST_H</span>
-<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define LINKED_LIST_H</span>
-<a name="l00019"></a>00019 <span class="preprocessor"></span>
-<a name="l00020"></a>00020 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structnode.html" title="A node in a hash table.">node</a>
-<a name="l00021"></a>00021 {
-<a name="l00022"></a><a class="code" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">00022</a> <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a>;
-<a name="l00023"></a>00023 <span class="keyword">struct </span><a class="code" href="structnode.html" title="A node in a hash table.">node</a>* <a class="code" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063" title="Pointer to the next node in the collision chain.">next</a>;
-<a name="l00024"></a>00024 } <a class="code" href="sll_8h.html#a74030fe22c7f9308540aee0c4259b111">sll_node</a>;
-<a name="l00025"></a>00025
-<a name="l00036"></a>00036 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value.">sll_new</a>( <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a> );
-<a name="l00037"></a>00037
-<a name="l00045"></a>00045 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="sll_8c.html#af7327f24d1900d495c1bf914a592b631" title="Finds and returns the last node in the supplied linked list.">sll_last</a>(<a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list);
-<a name="l00046"></a>00046
-<a name="l00058"></a>00058 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="sll_8c.html#aaf7e4557200dec55dec679f63de2b4d1" title="Return the node at the specified index in a linked list.">sll_get</a>(<a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list, <span class="keywordtype">int</span> index);
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2012, Michael D. Lowis</span>
+<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"> *</span>
+<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
+<a name="l00009"></a>00009 <span class="comment"> * this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice,</span>
+<a name="l00012"></a>00012 <span class="comment"> * this list of conditions and the following disclaimer in the documentation</span>
+<a name="l00013"></a>00013 <span class="comment"> * and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"> *</span>
+<a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span>
+<a name="l00016"></a>00016 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span>
+<a name="l00019"></a>00019 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00020"></a>00020 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00021"></a>00021 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00022"></a>00022 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00023"></a>00023 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00024"></a>00024 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
+<a name="l00025"></a>00025 <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00026"></a>00026 <span class="comment"> *****************************************************************************/</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#ifndef SLL_H</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#define SLL_H</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span>
+<a name="l00031"></a><a class="code" href="structsll__node.html">00031</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>
+<a name="l00032"></a>00032 {
+<a name="l00034"></a><a class="code" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c">00034</a> <span class="keywordtype">void</span>* <a class="code" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c" title="Pointer to the contents the node.">contents</a>;
+<a name="l00036"></a><a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826">00036</a> <span class="keyword">struct </span><a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826" title="Pointer to next node in the list.">next</a>;
+<a name="l00037"></a>00037 } <a class="code" href="sll_8h.html#a168d63554ec6362ceecf64acc3e15bce" title="A linked list node.">sll_node</a>;
+<a name="l00038"></a>00038
+<a name="l00049"></a>00049 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#a471151d11dc385e3364c9a38b19ecba7" title="Creates a new linked list node with the supplied value.">sll_new</a>( <span class="keywordtype">void</span>* <a class="code" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c" title="Pointer to the contents the node.">contents</a> );
+<a name="l00050"></a>00050
+<a name="l00058"></a>00058 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#abe6fe02fbfcbf1d647ff94295b855e7e" title="Finds and returns the first node in the supplied linked list.">sll_front</a>(<a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list);
<a name="l00059"></a>00059
-<a name="l00068"></a>00068 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="sll_8c.html#a0751beeb21d1540c9ddcd5e01964e23e" title="Adds a new node to an existing linked list.">sll_add</a>( <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list, <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a> );
-<a name="l00069"></a>00069
-<a name="l00079"></a>00079 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="sll_8c.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index.">sll_insert</a>( <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list, <span class="keywordtype">int</span> index, <span class="keywordtype">void</span>* <a class="code" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a>);
-<a name="l00080"></a>00080
-<a name="l00093"></a>00093 <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* <a class="code" href="sll_8c.html#afd494f171c24981f0d7a007841f21cfe" title="Deletes a node from the supplied list.">sll_delete</a>( <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> free_contents);
-<a name="l00094"></a>00094
-<a name="l00105"></a>00105 <span class="keywordtype">void</span> <a class="code" href="sll_8c.html#a7373cc6bac0876b330da73722e24910b" title="Frees all memory used by a linked list.">sll_free</a>( <a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list, <span class="keywordtype">int</span> free_contents);
-<a name="l00106"></a>00106
-<a name="l00117"></a>00117 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="sll_8c.html#af5f6589df6d0ef48ed6f57ac5527ddfe" title="Returns the number of elements in the list.">sll_length</a>(<a class="code" href="structnode.html" title="A node in a hash table.">sll_node</a>* list);
-<a name="l00118"></a>00118
-<a name="l00119"></a>00119 <span class="preprocessor">#endif</span>
+<a name="l00067"></a>00067 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#a78ef5151212d47bb63f2fd93453283ed" title="Finds and returns the last node in the supplied linked list.">sll_back</a>(<a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list);
+<a name="l00068"></a>00068
+<a name="l00080"></a>00080 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#a0582f263482ead73d53b018978513540" title="Return the node at the specified index in a linked list.">sll_index</a>(<a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list, <span class="keywordtype">int</span> index);
+<a name="l00081"></a>00081
+<a name="l00090"></a>00090 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#a19ad0a86a87451a3ab68ad6d18c3e3e0" title="Adds a new node to the end of an existing linked list.">sll_push_back</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list, <span class="keywordtype">void</span>* <a class="code" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c" title="Pointer to the contents the node.">contents</a> );
+<a name="l00091"></a>00091
+<a name="l00100"></a>00100 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#acfe3ebc296fe75f1d0ee21195dd7b9bf" title="Adds a new node to the front of an existing linked list.">sll_push_front</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list, <span class="keywordtype">void</span>* <a class="code" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c" title="Pointer to the contents the node.">contents</a> );
+<a name="l00101"></a>00101
+<a name="l00110"></a>00110 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#af72e93329186ac936d2bf6f544aa1f6b" title="Removes and returns a pointer to the last element of the list.">sll_pop_back</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list );
+<a name="l00111"></a>00111
+<a name="l00120"></a>00120 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#a1588e5a1f90852ee48403d5313d64269" title="Removes and returns a pointer to the first element of the list.">sll_pop_front</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list );
+<a name="l00121"></a>00121
+<a name="l00131"></a>00131 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#a66769edc21579f71972ac90de6da4a9f" title="Inserts a new node in a linked list at the specified index.">sll_insert</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list, <span class="keywordtype">int</span> index, <span class="keywordtype">void</span>* <a class="code" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c" title="Pointer to the contents the node.">contents</a>);
+<a name="l00132"></a>00132
+<a name="l00145"></a>00145 <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* <a class="code" href="sll_8c.html#afd494f171c24981f0d7a007841f21cfe" title="Deletes a node from the supplied list.">sll_delete</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> free_contents);
+<a name="l00146"></a>00146
+<a name="l00157"></a>00157 <span class="keywordtype">void</span> <a class="code" href="sll_8c.html#a7373cc6bac0876b330da73722e24910b" title="Frees all memory used by a linked list.">sll_free</a>( <a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list, <span class="keywordtype">int</span> free_contents);
+<a name="l00158"></a>00158
+<a name="l00169"></a>00169 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="sll_8c.html#af5f6589df6d0ef48ed6f57ac5527ddfe" title="Returns the number of elements in the list.">sll_length</a>(<a class="code" href="structsll__node.html" title="A linked list node.">sll_node</a>* list);
+<a name="l00170"></a>00170
+<a name="l00171"></a>00171 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="sll_8h.html">sll.h</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Data Structures: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript">
+$(document).ready(initResizable);
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<!-- Generated by Doxygen 1.7.3 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div id="top">
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Data Structures <span id="projectnumber">v0.1</span></div>
+ <div id="projectbrief">A collection of classic data structures implemented in C</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li id="searchli">
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class List</span></a></li>
+ <li><a href="classes.html"><span>Class Index</span></a></li>
+ <li><a href="functions.html"><span>Class Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+ initNavTree('structbt__node.html','');
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<h1>bt_node Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structbt__node.html">bt_node</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="structbt__node.html#a9e0d7c8bb9ca7bb4b69bd4af9ca1440c">contents</a></td><td><a class="el" href="structbt__node.html">bt_node</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structbt__node.html#a689e6fb3fde56bc337d5234b0d7f8e80">left</a></td><td><a class="el" href="structbt__node.html">bt_node</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structbt__node.html#aefe84db5b1f24953aba4743200b24898">right</a></td><td><a class="el" href="structbt__node.html">bt_node</a></td><td></td></tr>
+</table></div>
+</div>
+ <div id="nav-path" class="navpath">
+ <ul>
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
+ </ul>
+ </div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Data Structures: bt_node Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript">
+$(document).ready(initResizable);
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<!-- Generated by Doxygen 1.7.3 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div id="top">
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Data Structures <span id="projectnumber">v0.1</span></div>
+ <div id="projectbrief">A collection of classic data structures implemented in C</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li id="searchli">
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class List</span></a></li>
+ <li><a href="classes.html"><span>Class Index</span></a></li>
+ <li><a href="functions.html"><span>Class Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+ initNavTree('structbt__node.html','');
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> </div>
+ <div class="headertitle">
+<h1>bt_node Struct Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="bt_node" -->
+<p>A binary tree node.
+<a href="#_details">More...</a></p>
+
+<p><code>#include <<a class="el" href="bt_8h_source.html">bt.h</a>></code></p>
+<div class="dynheader">
+Collaboration diagram for bt_node:</div>
+<div class="dyncontent">
+<div class="center"><img src="structbt__node__coll__graph.png" border="0" usemap="#bt__node_coll__map" alt="Collaboration graph"/></div>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+
+<p><a href="structbt__node-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structbt__node.html#a9e0d7c8bb9ca7bb4b69bd4af9ca1440c">contents</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">The contents of the tree node. <a href="#a9e0d7c8bb9ca7bb4b69bd4af9ca1440c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structbt__node.html">bt_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structbt__node.html#a689e6fb3fde56bc337d5234b0d7f8e80">left</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">The left child of the tree node. <a href="#a689e6fb3fde56bc337d5234b0d7f8e80"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structbt__node.html">bt_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structbt__node.html#aefe84db5b1f24953aba4743200b24898">right</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">the right child of the tree node. <a href="#aefe84db5b1f24953aba4743200b24898"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>A binary tree node. </p>
+
+<p>Definition at line <a class="el" href="bt_8h_source.html#l00034">34</a> of file <a class="el" href="bt_8h_source.html">bt.h</a>.</p>
+</div><hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a9e0d7c8bb9ca7bb4b69bd4af9ca1440c"></a><!-- doxytag: member="bt_node::contents" ref="a9e0d7c8bb9ca7bb4b69bd4af9ca1440c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* <a class="el" href="structbt__node.html#a9e0d7c8bb9ca7bb4b69bd4af9ca1440c">bt_node::contents</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The contents of the tree node. </p>
+
+<p>Definition at line <a class="el" href="bt_8h_source.html#l00037">37</a> of file <a class="el" href="bt_8h_source.html">bt.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a689e6fb3fde56bc337d5234b0d7f8e80"></a><!-- doxytag: member="bt_node::left" ref="a689e6fb3fde56bc337d5234b0d7f8e80" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct <a class="el" href="structbt__node.html">bt_node</a>* <a class="el" href="structbt__node.html#a689e6fb3fde56bc337d5234b0d7f8e80">bt_node::left</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The left child of the tree node. </p>
+
+<p>Definition at line <a class="el" href="bt_8h_source.html#l00039">39</a> of file <a class="el" href="bt_8h_source.html">bt.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aefe84db5b1f24953aba4743200b24898"></a><!-- doxytag: member="bt_node::right" ref="aefe84db5b1f24953aba4743200b24898" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct <a class="el" href="structbt__node.html">bt_node</a>* <a class="el" href="structbt__node.html#aefe84db5b1f24953aba4743200b24898">bt_node::right</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>the right child of the tree node. </p>
+
+<p>Definition at line <a class="el" href="bt_8h_source.html#l00041">41</a> of file <a class="el" href="bt_8h_source.html">bt.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>src/trees/binary/<a class="el" href="bt_8h_source.html">bt.h</a></li>
+</ul>
+</div>
+</div>
+ <div id="nav-path" class="navpath">
+ <ul>
+ <li class="navelem"><a class="el" href="structbt__node.html">bt_node</a> </li>
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
+ </ul>
+ </div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+</body>
+</html>
--- /dev/null
+<map id="G" name="G">
+</map>
--- /dev/null
+87d98d54805d23183bb2452718287e70
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Data Structures: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript">
+$(document).ready(initResizable);
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<!-- Generated by Doxygen 1.7.3 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div id="top">
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Data Structures <span id="projectnumber">v0.1</span></div>
+ <div id="projectbrief">A collection of classic data structures implemented in C</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li id="searchli">
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class List</span></a></li>
+ <li><a href="classes.html"><span>Class Index</span></a></li>
+ <li><a href="functions.html"><span>Class Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+ initNavTree('structbt__tree.html','');
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<h1>bt_tree Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structbt__tree.html">bt_tree</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="structbt__tree.html#a7ac2a5e50551c1a10b1bf3884cd12af5">compare</a></td><td><a class="el" href="structbt__tree.html">bt_tree</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structbt__tree.html#ae428a77981f3b9f27f959b78ed468db7">root</a></td><td><a class="el" href="structbt__tree.html">bt_tree</a></td><td></td></tr>
+</table></div>
+</div>
+ <div id="nav-path" class="navpath">
+ <ul>
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
+ </ul>
+ </div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Data Structures: bt_tree Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript">
+$(document).ready(initResizable);
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<!-- Generated by Doxygen 1.7.3 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div id="top">
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Data Structures <span id="projectnumber">v0.1</span></div>
+ <div id="projectbrief">A collection of classic data structures implemented in C</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li id="searchli">
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class List</span></a></li>
+ <li><a href="classes.html"><span>Class Index</span></a></li>
+ <li><a href="functions.html"><span>Class Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+ initNavTree('structbt__tree.html','');
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> </div>
+ <div class="headertitle">
+<h1>bt_tree Struct Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="bt_tree" -->
+<p>A binary tree.
+<a href="#_details">More...</a></p>
+
+<p><code>#include <<a class="el" href="bt_8h_source.html">bt.h</a>></code></p>
+<div class="dynheader">
+Collaboration diagram for bt_tree:</div>
+<div class="dyncontent">
+<div class="center"><img src="structbt__tree__coll__graph.png" border="0" usemap="#bt__tree_coll__map" alt="Collaboration graph"/></div>
+<map name="bt__tree_coll__map" id="bt__tree_coll__map">
+<area shape="rect" id="node2" href="structbt__node.html" title="A binary tree node." alt="" coords="5,8,72,37"/>\r</map>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+
+<p><a href="structbt__tree-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structbt__node.html">bt_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structbt__tree.html#ae428a77981f3b9f27f959b78ed468db7">root</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">The root of the binary tree. <a href="#ae428a77981f3b9f27f959b78ed468db7"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75">bt_compare_func</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structbt__tree.html#a7ac2a5e50551c1a10b1bf3884cd12af5">compare</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">The function used to compare data. <a href="#a7ac2a5e50551c1a10b1bf3884cd12af5"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>A binary tree. </p>
+
+<p>Definition at line <a class="el" href="bt_8h_source.html#l00045">45</a> of file <a class="el" href="bt_8h_source.html">bt.h</a>.</p>
+</div><hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a7ac2a5e50551c1a10b1bf3884cd12af5"></a><!-- doxytag: member="bt_tree::compare" ref="a7ac2a5e50551c1a10b1bf3884cd12af5" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="bt_8h.html#a8a7bf1216efb8b05f20a020acd705f75">bt_compare_func</a> <a class="el" href="structbt__tree.html#a7ac2a5e50551c1a10b1bf3884cd12af5">bt_tree::compare</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The function used to compare data. </p>
+
+<p>Definition at line <a class="el" href="bt_8h_source.html#l00050">50</a> of file <a class="el" href="bt_8h_source.html">bt.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae428a77981f3b9f27f959b78ed468db7"></a><!-- doxytag: member="bt_tree::root" ref="ae428a77981f3b9f27f959b78ed468db7" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structbt__node.html">bt_node</a>* <a class="el" href="structbt__tree.html#ae428a77981f3b9f27f959b78ed468db7">bt_tree::root</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The root of the binary tree. </p>
+
+<p>Definition at line <a class="el" href="bt_8h_source.html#l00048">48</a> of file <a class="el" href="bt_8h_source.html">bt.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>src/trees/binary/<a class="el" href="bt_8h_source.html">bt.h</a></li>
+</ul>
+</div>
+</div>
+ <div id="nav-path" class="navpath">
+ <ul>
+ <li class="navelem"><a class="el" href="structbt__tree.html">bt_tree</a> </li>
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
+ </ul>
+ </div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+</body>
+</html>
--- /dev/null
+<map id="G" name="G">
+<area shape="rect" id="node2" href="$structbt__node.html" title="A binary tree node." alt="" coords="5,8,72,37"/>
+</map>
--- /dev/null
+a0300b13010e96b2f69776cc395f6be1
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Data Structures: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript">
+$(document).ready(initResizable);
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<!-- Generated by Doxygen 1.7.3 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div id="top">
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Data Structures <span id="projectnumber">v0.1</span></div>
+ <div id="projectbrief">A collection of classic data structures implemented in C</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li id="searchli">
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class List</span></a></li>
+ <li><a href="classes.html"><span>Class Index</span></a></li>
+ <li><a href="functions.html"><span>Class Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+ initNavTree('structht__node.html','');
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<h1>ht_node Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structht__node.html">ht_node</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b">key</a></td><td><a class="el" href="structht__node.html">ht_node</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e">next</a></td><td><a class="el" href="structht__node.html">ht_node</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structht__node.html#a0e050852d00670316f005463a7d749f8">val</a></td><td><a class="el" href="structht__node.html">ht_node</a></td><td></td></tr>
+</table></div>
+</div>
+ <div id="nav-path" class="navpath">
+ <ul>
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
+ </ul>
+ </div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Data Structures: ht_node Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript">
+$(document).ready(initResizable);
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<!-- Generated by Doxygen 1.7.3 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div id="top">
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Data Structures <span id="projectnumber">v0.1</span></div>
+ <div id="projectbrief">A collection of classic data structures implemented in C</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li id="searchli">
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class List</span></a></li>
+ <li><a href="classes.html"><span>Class Index</span></a></li>
+ <li><a href="functions.html"><span>Class Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+ initNavTree('structht__node.html','');
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> </div>
+ <div class="headertitle">
+<h1>ht_node Struct Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="ht_node" -->
+<p>A node in a hash table.
+<a href="#_details">More...</a></p>
+
+<p><code>#include <<a class="el" href="ht_8h_source.html">ht.h</a>></code></p>
+
+<p><a href="structht__node-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b">key</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to the key. <a href="#a7ae2a850d1c6e0abb86b3d901fb5d16b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structht__node.html#a0e050852d00670316f005463a7d749f8">val</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to the value. <a href="#a0e050852d00670316f005463a7d749f8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct node * </td><td class="memItemRight" valign="bottom"><a class="el" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e">next</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to the next node in the collision chain. <a href="#ae1c5c426c9f752a40b5db427b506060e"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>A node in a hash table. </p>
+
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00034">34</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+</div><hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a7ae2a850d1c6e0abb86b3d901fb5d16b"></a><!-- doxytag: member="ht_node::key" ref="a7ae2a850d1c6e0abb86b3d901fb5d16b" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* <a class="el" href="structht__node.html#a7ae2a850d1c6e0abb86b3d901fb5d16b">ht_node::key</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Pointer to the key. </p>
+
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00037">37</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae1c5c426c9f752a40b5db427b506060e"></a><!-- doxytag: member="ht_node::next" ref="ae1c5c426c9f752a40b5db427b506060e" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct node* <a class="el" href="structht__node.html#ae1c5c426c9f752a40b5db427b506060e">ht_node::next</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Pointer to the next node in the collision chain. </p>
+
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00041">41</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0e050852d00670316f005463a7d749f8"></a><!-- doxytag: member="ht_node::val" ref="a0e050852d00670316f005463a7d749f8" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* <a class="el" href="structht__node.html#a0e050852d00670316f005463a7d749f8">ht_node::val</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Pointer to the value. </p>
+
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00039">39</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>src/ht/<a class="el" href="ht_8h_source.html">ht.h</a></li>
+</ul>
+</div>
+</div>
+ <div id="nav-path" class="navpath">
+ <ul>
+ <li class="navelem"><a class="el" href="structht__node.html">ht_node</a> </li>
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
+ </ul>
+ </div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+</body>
+</html>
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<div class="dyncontent">
<div class="center"><img src="structht__table__coll__graph.png" border="0" usemap="#ht__table_coll__map" alt="Collaboration graph"/></div>
<map name="ht__table_coll__map" id="ht__table_coll__map">
-<area shape="rect" id="node2" href="structnode.html" title="A node in a hash table." alt="" coords="13,5,64,35"/>\r</map>
+<area shape="rect" id="node2" href="structht__node.html" title="A node in a hash table." alt="" coords="5,5,72,35"/>\r</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<p><a href="structht__table-members.html">List of all members.</a></p>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4">size</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Size of the internal table. <a href="#a493b0baf20b4274a08b5451e61f8e5f4"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnode.html">ht_node</a> ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc">table</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structht__node.html">ht_node</a> ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc">table</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to the internal hashing table. <a href="#ae739f6f0d8b6cd6f55337ae7d0761dfc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf">ht_hash_func</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structht__table.html#abe53fe8d261dea812255944769d22f45">hash_func</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function used for hashing elements. <a href="#abe53fe8d261dea812255944769d22f45"></a><br/></td></tr>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A hash table. </p>
-<p>Definition at line <a class="el" href="ht_8h_source.html#l00035">35</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00045">45</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
</div><hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="abe53fe8d261dea812255944769d22f45"></a><!-- doxytag: member="ht_table::hash_func" ref="abe53fe8d261dea812255944769d22f45" args="" -->
<div class="memitem">
<p>Function used for hashing elements. </p>
-<p>Definition at line <a class="el" href="ht_8h_source.html#l00042">42</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00052">52</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
</div>
</div>
<p>Size of the internal table. </p>
-<p>Definition at line <a class="el" href="ht_8h_source.html#l00038">38</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00048">48</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
</div>
</div>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structnode.html">ht_node</a>** <a class="el" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc">ht_table::table</a></td>
+ <td class="memname"><a class="el" href="structht__node.html">ht_node</a>** <a class="el" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc">ht_table::table</a></td>
</tr>
</table>
</div>
<p>Pointer to the internal hashing table. </p>
-<p>Definition at line <a class="el" href="ht_8h_source.html#l00040">40</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00050">50</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="structht__table.html">ht_table</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
<map id="G" name="G">
-<area shape="rect" id="node2" href="$structnode.html" title="A node in a hash table." alt="" coords="13,5,64,35"/>
+<area shape="rect" id="node2" href="$structht__node.html" title="A node in a hash table." alt="" coords="5,5,72,35"/>
</map>
-ea893cd46a010dfcebb9ac9fc29c52d2
\ No newline at end of file
+92e4c354a7643cd56d954c6c073fb760
\ No newline at end of file
</div>
<div class="contents">
This is the complete list of members for <a class="el" href="structnode.html">node</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a></td><td><a class="el" href="structnode.html">node</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b">key</a></td><td><a class="el" href="structnode.html">node</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063">next</a></td><td><a class="el" href="structnode.html">node</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structnode.html#aa3e8aa83f864292b5a01210f4453fcc0">next</a></td><td><a class="el" href="structnode.html">node</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structnode.html#a3866f55c05d50265b730d8cdeec0a1f8">val</a></td><td><a class="el" href="structnode.html">node</a></td><td></td></tr>
</table></div>
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:11:20 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
Collaboration diagram for node:</div>
<div class="dyncontent">
<div class="center"><img src="structnode__coll__graph.png" border="0" usemap="#node_coll__map" alt="Collaboration graph"/></div>
-<map name="node_coll__map" id="node_coll__map">
-</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<p><a href="structnode-members.html">List of all members.</a></p>
<tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structnode.html#a72c8a0c41b801c92db89c5078642f28b">key</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to the key. <a href="#a72c8a0c41b801c92db89c5078642f28b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structnode.html#a3866f55c05d50265b730d8cdeec0a1f8">val</a></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to tke value. <a href="#a3866f55c05d50265b730d8cdeec0a1f8"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structnode.html">node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063">next</a></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to the next node in the collision chain. <a href="#a111a569ab2765add9b91c9f94cf9f063"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">contents</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to the value. <a href="#a3866f55c05d50265b730d8cdeec0a1f8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structnode.html">node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structnode.html#aa3e8aa83f864292b5a01210f4453fcc0">next</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to the next node in the collision chain. <a href="#aa3e8aa83f864292b5a01210f4453fcc0"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A node in a hash table. </p>
-<p>Definition at line <a class="el" href="ht_8h_source.html#l00024">24</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00034">34</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
</div><hr/><h2>Member Data Documentation</h2>
-<a class="anchor" id="a6658978058886a89ccc39f1d1a56e6d1"></a><!-- doxytag: member="node::contents" ref="a6658978058886a89ccc39f1d1a56e6d1" args="" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void* <a class="el" href="structnode.html#a6658978058886a89ccc39f1d1a56e6d1">node::contents</a></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="sll_8h_source.html#l00022">22</a> of file <a class="el" href="sll_8h_source.html">sll.h</a>.</p>
-
-</div>
-</div>
<a class="anchor" id="a72c8a0c41b801c92db89c5078642f28b"></a><!-- doxytag: member="node::key" ref="a72c8a0c41b801c92db89c5078642f28b" args="" -->
<div class="memitem">
<div class="memproto">
<p>Pointer to the key. </p>
-<p>Definition at line <a class="el" href="ht_8h_source.html#l00027">27</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00037">37</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
</div>
</div>
-<a class="anchor" id="a111a569ab2765add9b91c9f94cf9f063"></a><!-- doxytag: member="node::next" ref="a111a569ab2765add9b91c9f94cf9f063" args="" -->
+<a class="anchor" id="aa3e8aa83f864292b5a01210f4453fcc0"></a><!-- doxytag: member="node::next" ref="aa3e8aa83f864292b5a01210f4453fcc0" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">struct <a class="el" href="structnode.html">node</a> * <a class="el" href="structnode.html#a111a569ab2765add9b91c9f94cf9f063">node::next</a></td>
+ <td class="memname">struct <a class="el" href="structnode.html">node</a>* <a class="el" href="structnode.html#aa3e8aa83f864292b5a01210f4453fcc0">node::next</a></td>
</tr>
</table>
</div>
<p>Pointer to the next node in the collision chain. </p>
-<p>Definition at line <a class="el" href="ht_8h_source.html#l00031">31</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00041">41</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
</div>
</div>
</div>
<div class="memdoc">
-<p>Pointer to tke value. </p>
+<p>Pointer to the value. </p>
-<p>Definition at line <a class="el" href="ht_8h_source.html#l00029">29</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
+<p>Definition at line <a class="el" href="ht_8h_source.html#l00039">39</a> of file <a class="el" href="ht_8h_source.html">ht.h</a>.</p>
</div>
</div>
-<hr/>The documentation for this struct was generated from the following files:<ul>
+<hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/ht/<a class="el" href="ht_8h_source.html">ht.h</a></li>
-<li>src/lists/single_link/<a class="el" href="sll_8h_source.html">sll.h</a></li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="structnode.html">node</a> </li>
- <li class="footer">Generated on Thu Mar 22 2012 16:12:15 for Data Structures by 
+ <li class="footer">Generated on Fri Mar 23 2012 11:11:20 for Data Structures by 
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Data Structures: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript">
+$(document).ready(initResizable);
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<!-- Generated by Doxygen 1.7.3 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div id="top">
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Data Structures <span id="projectnumber">v0.1</span></div>
+ <div id="projectbrief">A collection of classic data structures implemented in C</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li id="searchli">
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class List</span></a></li>
+ <li><a href="classes.html"><span>Class Index</span></a></li>
+ <li><a href="functions.html"><span>Class Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+ initNavTree('structsll__node.html','');
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<h1>sll_node Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structsll__node.html">sll_node</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c">contents</a></td><td><a class="el" href="structsll__node.html">sll_node</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826">next</a></td><td><a class="el" href="structsll__node.html">sll_node</a></td><td></td></tr>
+</table></div>
+</div>
+ <div id="nav-path" class="navpath">
+ <ul>
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
+ </ul>
+ </div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Data Structures: sll_node Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript">
+$(document).ready(initResizable);
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<!-- Generated by Doxygen 1.7.3 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div id="top">
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Data Structures <span id="projectnumber">v0.1</span></div>
+ <div id="projectbrief">A collection of classic data structures implemented in C</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li id="searchli">
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class List</span></a></li>
+ <li><a href="classes.html"><span>Class Index</span></a></li>
+ <li><a href="functions.html"><span>Class Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+ initNavTree('structsll__node.html','');
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> </div>
+ <div class="headertitle">
+<h1>sll_node Struct Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="sll_node" -->
+<p>A linked list node.
+<a href="#_details">More...</a></p>
+
+<p><code>#include <<a class="el" href="sll_8h_source.html">sll.h</a>></code></p>
+<div class="dynheader">
+Collaboration diagram for sll_node:</div>
+<div class="dyncontent">
+<div class="center"><img src="structsll__node__coll__graph.png" border="0" usemap="#sll__node_coll__map" alt="Collaboration graph"/></div>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+
+<p><a href="structsll__node-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c">contents</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to the contents the node. <a href="#aafacbed96ba149b0b8c705426196154c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structsll__node.html">sll_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826">next</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to next node in the list. <a href="#aa2e4c5d743ad44e759b5ca13f9915826"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>A linked list node. </p>
+
+<p>Definition at line <a class="el" href="sll_8h_source.html#l00031">31</a> of file <a class="el" href="sll_8h_source.html">sll.h</a>.</p>
+</div><hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="aafacbed96ba149b0b8c705426196154c"></a><!-- doxytag: member="sll_node::contents" ref="aafacbed96ba149b0b8c705426196154c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* <a class="el" href="structsll__node.html#aafacbed96ba149b0b8c705426196154c">sll_node::contents</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Pointer to the contents the node. </p>
+
+<p>Definition at line <a class="el" href="sll_8h_source.html#l00034">34</a> of file <a class="el" href="sll_8h_source.html">sll.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa2e4c5d743ad44e759b5ca13f9915826"></a><!-- doxytag: member="sll_node::next" ref="aa2e4c5d743ad44e759b5ca13f9915826" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct <a class="el" href="structsll__node.html">sll_node</a>* <a class="el" href="structsll__node.html#aa2e4c5d743ad44e759b5ca13f9915826">sll_node::next</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Pointer to next node in the list. </p>
+
+<p>Definition at line <a class="el" href="sll_8h_source.html#l00036">36</a> of file <a class="el" href="sll_8h_source.html">sll.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>src/lists/single_link/<a class="el" href="sll_8h_source.html">sll.h</a></li>
+</ul>
+</div>
+</div>
+ <div id="nav-path" class="navpath">
+ <ul>
+ <li class="navelem"><a class="el" href="structsll__node.html">sll_node</a> </li>
+ <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
+ </ul>
+ </div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+</body>
+</html>
--- /dev/null
+<map id="G" name="G">
+</map>
--- /dev/null
+5300c452bdaf4885ca37ae7b4793eaf7
\ No newline at end of file
\section{Class List}
Here are the classes, structs, unions and interfaces with brief descriptions:\begin{DoxyCompactList}
+\item\contentsline{section}{\hyperlink{structbt__node}{bt\_\-node} (A binary tree node )}{\pageref{structbt__node}}{}
+\item\contentsline{section}{\hyperlink{structbt__tree}{bt\_\-tree} (A binary tree )}{\pageref{structbt__tree}}{}
+\item\contentsline{section}{\hyperlink{structht__node}{ht\_\-node} (A node in a hash table )}{\pageref{structht__node}}{}
\item\contentsline{section}{\hyperlink{structht__table}{ht\_\-table} (A hash table )}{\pageref{structht__table}}{}
-\item\contentsline{section}{\hyperlink{structnode}{node} (A node in a hash table )}{\pageref{structnode}}{}
+\item\contentsline{section}{\hyperlink{structsll__node}{sll\_\-node} (A linked list node )}{\pageref{structsll__node}}{}
\end{DoxyCompactList}
\section{src/trees/binary/bt.c File Reference}
\label{bt_8c}\index{src/trees/binary/bt.c@{src/trees/binary/bt.c}}
}
+{\ttfamily \#include \char`\"{}bt.h\char`\"{}}\par
+Include dependency graph for bt.c:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=184pt]{bt_8c__incl}
+\end{center}
+\end{figure}
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+\hyperlink{structbt__tree}{bt\_\-tree} $\ast$ \hyperlink{bt_8c_a3682c3b6d0e0d70a0280de485ca687cc}{bt\_\-new} (\hyperlink{bt_8h_a8a7bf1216efb8b05f20a020acd705f75}{bt\_\-compare\_\-func} compare)
+\begin{DoxyCompactList}\small\item\em Creates a new empty binary tree. \item\end{DoxyCompactList}\item
+void \hyperlink{bt_8c_aa24dd75e23a367ec824d99793c2ba1bb}{bt\_\-free} (\hyperlink{structbt__tree}{bt\_\-tree} $\ast$tree, int free\_\-contents)
+\begin{DoxyCompactList}\small\item\em Frees the memory allocated for all nodes of a tree. \item\end{DoxyCompactList}\item
+int \hyperlink{bt_8c_a89f764721b6fb39787a79a597a7759b1}{bt\_\-compare\_\-ptr} (void $\ast$obj1, void $\ast$obj2)
+\begin{DoxyCompactList}\small\item\em Compares the value of two pointers. \item\end{DoxyCompactList}\item
+void \hyperlink{bt_8c_a08bc1827223c57790bbf396cd60e3317}{bt\_\-insert} (\hyperlink{structbt__tree}{bt\_\-tree} $\ast$tree, void $\ast$data)
+\begin{DoxyCompactList}\small\item\em Inserts a new node into the tree. \item\end{DoxyCompactList}\item
+void \hyperlink{bt_8c_ad23029f65222ccc60e026a60e124cbb6}{bt\_\-delete} (\hyperlink{structbt__tree}{bt\_\-tree} $\ast$tree, void $\ast$data)
+\item
+void $\ast$ \hyperlink{bt_8c_a4f6d976b294d6f4e0968e5d4e75a7d31}{bt\_\-find} (\hyperlink{structbt__tree}{bt\_\-tree} $\ast$tree, void $\ast$data)
+\begin{DoxyCompactList}\small\item\em Finds and returns the data from a node containing the given data. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{bt_8c_a89f764721b6fb39787a79a597a7759b1}{
+\index{bt.c@{bt.c}!bt\_\-compare\_\-ptr@{bt\_\-compare\_\-ptr}}
+\index{bt\_\-compare\_\-ptr@{bt\_\-compare\_\-ptr}!bt.c@{bt.c}}
+\subsubsection[{bt\_\-compare\_\-ptr}]{\setlength{\rightskip}{0pt plus 5cm}int bt\_\-compare\_\-ptr (
+\begin{DoxyParamCaption}
+\item[{void $\ast$}]{obj1, }
+\item[{void $\ast$}]{obj2}
+\end{DoxyParamCaption}
+)}}
+\label{bt_8c_a89f764721b6fb39787a79a597a7759b1}
+
+
+Compares the value of two pointers.
+
+This function takes two pointers and compares their values returning an integral value representing the result of the comparison. A return value of zero indicates the pointers are equal. A positive value indicates that obj2 is greater than obj1 and a negative value indicates the opposite.
+
+
+\begin{DoxyParams}{Parameters}
+{\em obj1} & The first object to be compared. \\
+\hline
+{\em obj2} & The second object to be compared.\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+The result of the comparison.
+\end{DoxyReturn}
+
+
+Definition at line 39 of file bt.c.
+
+\hypertarget{bt_8c_ad23029f65222ccc60e026a60e124cbb6}{
+\index{bt.c@{bt.c}!bt\_\-delete@{bt\_\-delete}}
+\index{bt\_\-delete@{bt\_\-delete}!bt.c@{bt.c}}
+\subsubsection[{bt\_\-delete}]{\setlength{\rightskip}{0pt plus 5cm}void bt\_\-delete (
+\begin{DoxyParamCaption}
+\item[{{\bf bt\_\-tree} $\ast$}]{tree, }
+\item[{void $\ast$}]{data}
+\end{DoxyParamCaption}
+)}}
+\label{bt_8c_ad23029f65222ccc60e026a60e124cbb6}
+
+
+Definition at line 49 of file bt.c.
+
+\hypertarget{bt_8c_a4f6d976b294d6f4e0968e5d4e75a7d31}{
+\index{bt.c@{bt.c}!bt\_\-find@{bt\_\-find}}
+\index{bt\_\-find@{bt\_\-find}!bt.c@{bt.c}}
+\subsubsection[{bt\_\-find}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ bt\_\-find (
+\begin{DoxyParamCaption}
+\item[{{\bf bt\_\-tree} $\ast$}]{tree, }
+\item[{void $\ast$}]{data}
+\end{DoxyParamCaption}
+)}}
+\label{bt_8c_a4f6d976b294d6f4e0968e5d4e75a7d31}
+
+
+Finds and returns the data from a node containing the given data.
+
+This function uses the tree's compare function to search the tree for a node containing the given data. If a node containing the given data is found then the pointer to the contents of the node is returned. Otherwise a null pointer is returned.
+
+
+\begin{DoxyParams}{Parameters}
+{\em tree} & The tree to be searched. \\
+\hline
+{\em data} & The data to be searched for.\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+Pointer to the found data.
+\end{DoxyReturn}
+
+
+Definition at line 54 of file bt.c.
+
+\hypertarget{bt_8c_aa24dd75e23a367ec824d99793c2ba1bb}{
+\index{bt.c@{bt.c}!bt\_\-free@{bt\_\-free}}
+\index{bt\_\-free@{bt\_\-free}!bt.c@{bt.c}}
+\subsubsection[{bt\_\-free}]{\setlength{\rightskip}{0pt plus 5cm}void bt\_\-free (
+\begin{DoxyParamCaption}
+\item[{{\bf bt\_\-tree} $\ast$}]{tree, }
+\item[{int}]{free\_\-contents}
+\end{DoxyParamCaption}
+)}}
+\label{bt_8c_aa24dd75e23a367ec824d99793c2ba1bb}
+
+
+Frees the memory allocated for all nodes of a tree.
+
+This function frees all memory associated with the given tree. If free\_\-contents has a non-\/zero value then the contents pointer of each node will aslo be freed.
+
+
+\begin{DoxyParams}{Parameters}
+{\em tree} & The tree to be freed. \\
+\hline
+{\em free\_\-contents} & Determines whether the contents pointers will be freed. \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 34 of file bt.c.
+
+\hypertarget{bt_8c_a08bc1827223c57790bbf396cd60e3317}{
+\index{bt.c@{bt.c}!bt\_\-insert@{bt\_\-insert}}
+\index{bt\_\-insert@{bt\_\-insert}!bt.c@{bt.c}}
+\subsubsection[{bt\_\-insert}]{\setlength{\rightskip}{0pt plus 5cm}void bt\_\-insert (
+\begin{DoxyParamCaption}
+\item[{{\bf bt\_\-tree} $\ast$}]{tree, }
+\item[{void $\ast$}]{data}
+\end{DoxyParamCaption}
+)}}
+\label{bt_8c_a08bc1827223c57790bbf396cd60e3317}
+
+
+Inserts a new node into the tree.
+
+This function uses the tree's compare function to traverse the tree until an existing node with the given data is found or until a leaf node is reached. If a node exists containing the given data then no insertion is performed. If a leaf node is reached then the a new leaf node is created and set as the left or right child of that leaf node.
+
+
+\begin{DoxyParams}{Parameters}
+{\em tree} & The tree in which the node will be inserted. \\
+\hline
+{\em data} & The data that the new node will contain. \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 44 of file bt.c.
+
+\hypertarget{bt_8c_a3682c3b6d0e0d70a0280de485ca687cc}{
+\index{bt.c@{bt.c}!bt\_\-new@{bt\_\-new}}
+\index{bt\_\-new@{bt\_\-new}!bt.c@{bt.c}}
+\subsubsection[{bt\_\-new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf bt\_\-tree}$\ast$ bt\_\-new (
+\begin{DoxyParamCaption}
+\item[{{\bf bt\_\-compare\_\-func}}]{compare}
+\end{DoxyParamCaption}
+)}}
+\label{bt_8c_a3682c3b6d0e0d70a0280de485ca687cc}
+
+
+Creates a new empty binary tree.
+
+This function creates a new empty binary search tree with the given comparison function. The comparison function will be used during searching, insertions, and deletions, to find and traverse the tree.
+
+
+\begin{DoxyParams}{Parameters}
+{\em compare} & The function to use for comparing items in the tree.\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+Pointer to the newly created tree.
+\end{DoxyReturn}
+
+
+Definition at line 29 of file bt.c.
+
--- /dev/null
+d415069c538eb3b092984126fece7bb9
\ No newline at end of file
\section{src/trees/binary/bt.h File Reference}
\label{bt_8h}\index{src/trees/binary/bt.h@{src/trees/binary/bt.h}}
}
+This graph shows which files directly or indirectly include this file:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=184pt]{bt_8h__dep__incl}
+\end{center}
+\end{figure}
+\subsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+struct \hyperlink{structbt__node}{bt\_\-node}
+\begin{DoxyCompactList}\small\item\em A binary tree node. \item\end{DoxyCompactList}\item
+struct \hyperlink{structbt__tree}{bt\_\-tree}
+\begin{DoxyCompactList}\small\item\em A binary tree. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
+\subsection*{Typedefs}
+\begin{DoxyCompactItemize}
+\item
+typedef int($\ast$ \hyperlink{bt_8h_a8a7bf1216efb8b05f20a020acd705f75}{bt\_\-compare\_\-func} )(void $\ast$, void $\ast$)
+\begin{DoxyCompactList}\small\item\em A function pointer for a comparison function. \item\end{DoxyCompactList}\item
+typedef struct \hyperlink{structbt__node}{bt\_\-node} \hyperlink{bt_8h_a0add8fba825be5e3f912ab7323c1adaa}{bt\_\-node}
+\begin{DoxyCompactList}\small\item\em A binary tree node. \item\end{DoxyCompactList}\item
+typedef struct \hyperlink{structbt__tree}{bt\_\-tree} \hyperlink{bt_8h_acc5ee766f7f379b1d2fde9e7468d7e2a}{bt\_\-tree}
+\begin{DoxyCompactList}\small\item\em A binary tree. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+\hyperlink{structbt__tree}{bt\_\-tree} $\ast$ \hyperlink{bt_8h_a3682c3b6d0e0d70a0280de485ca687cc}{bt\_\-new} (\hyperlink{bt_8h_a8a7bf1216efb8b05f20a020acd705f75}{bt\_\-compare\_\-func} compare)
+\begin{DoxyCompactList}\small\item\em Creates a new empty binary tree. \item\end{DoxyCompactList}\item
+void \hyperlink{bt_8h_aa24dd75e23a367ec824d99793c2ba1bb}{bt\_\-free} (\hyperlink{structbt__tree}{bt\_\-tree} $\ast$tree, int free\_\-contents)
+\begin{DoxyCompactList}\small\item\em Frees the memory allocated for all nodes of a tree. \item\end{DoxyCompactList}\item
+int \hyperlink{bt_8h_a89f764721b6fb39787a79a597a7759b1}{bt\_\-compare\_\-ptr} (void $\ast$obj1, void $\ast$obj2)
+\begin{DoxyCompactList}\small\item\em Compares the value of two pointers. \item\end{DoxyCompactList}\item
+void \hyperlink{bt_8h_a08bc1827223c57790bbf396cd60e3317}{bt\_\-insert} (\hyperlink{structbt__tree}{bt\_\-tree} $\ast$tree, void $\ast$data)
+\begin{DoxyCompactList}\small\item\em Inserts a new node into the tree. \item\end{DoxyCompactList}\item
+void \hyperlink{bt_8h_afcbfcbca8b25fe867ea8b7b0deeaef9c}{bt\_\-delete} (\hyperlink{structbt__tree}{bt\_\-tree} $\ast$tree, void $\ast$data, int free\_\-contents)
+\begin{DoxyCompactList}\small\item\em Deletes a node for the tree. \item\end{DoxyCompactList}\item
+void $\ast$ \hyperlink{bt_8h_a4f6d976b294d6f4e0968e5d4e75a7d31}{bt\_\-find} (\hyperlink{structbt__tree}{bt\_\-tree} $\ast$tree, void $\ast$data)
+\begin{DoxyCompactList}\small\item\em Finds and returns the data from a node containing the given data. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\subsection{Typedef Documentation}
+\hypertarget{bt_8h_a8a7bf1216efb8b05f20a020acd705f75}{
+\index{bt.h@{bt.h}!bt\_\-compare\_\-func@{bt\_\-compare\_\-func}}
+\index{bt\_\-compare\_\-func@{bt\_\-compare\_\-func}!bt.h@{bt.h}}
+\subsubsection[{bt\_\-compare\_\-func}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ {\bf bt\_\-compare\_\-func})(void $\ast$, void $\ast$)}}
+\label{bt_8h_a8a7bf1216efb8b05f20a020acd705f75}
+
+
+A function pointer for a comparison function.
+
+
+
+Definition at line 31 of file bt.h.
+
+\hypertarget{bt_8h_a0add8fba825be5e3f912ab7323c1adaa}{
+\index{bt.h@{bt.h}!bt\_\-node@{bt\_\-node}}
+\index{bt\_\-node@{bt\_\-node}!bt.h@{bt.h}}
+\subsubsection[{bt\_\-node}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf bt\_\-node} {\bf bt\_\-node}}}
+\label{bt_8h_a0add8fba825be5e3f912ab7323c1adaa}
+
+
+A binary tree node.
+
+\hypertarget{bt_8h_acc5ee766f7f379b1d2fde9e7468d7e2a}{
+\index{bt.h@{bt.h}!bt\_\-tree@{bt\_\-tree}}
+\index{bt\_\-tree@{bt\_\-tree}!bt.h@{bt.h}}
+\subsubsection[{bt\_\-tree}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf bt\_\-tree} {\bf bt\_\-tree}}}
+\label{bt_8h_acc5ee766f7f379b1d2fde9e7468d7e2a}
+
+
+A binary tree.
+
+
+
+\subsection{Function Documentation}
+\hypertarget{bt_8h_a89f764721b6fb39787a79a597a7759b1}{
+\index{bt.h@{bt.h}!bt\_\-compare\_\-ptr@{bt\_\-compare\_\-ptr}}
+\index{bt\_\-compare\_\-ptr@{bt\_\-compare\_\-ptr}!bt.h@{bt.h}}
+\subsubsection[{bt\_\-compare\_\-ptr}]{\setlength{\rightskip}{0pt plus 5cm}int bt\_\-compare\_\-ptr (
+\begin{DoxyParamCaption}
+\item[{void $\ast$}]{obj1, }
+\item[{void $\ast$}]{obj2}
+\end{DoxyParamCaption}
+)}}
+\label{bt_8h_a89f764721b6fb39787a79a597a7759b1}
+
+
+Compares the value of two pointers.
+
+This function takes two pointers and compares their values returning an integral value representing the result of the comparison. A return value of zero indicates the pointers are equal. A positive value indicates that obj2 is greater than obj1 and a negative value indicates the opposite.
+
+
+\begin{DoxyParams}{Parameters}
+{\em obj1} & The first object to be compared. \\
+\hline
+{\em obj2} & The second object to be compared.\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+The result of the comparison.
+\end{DoxyReturn}
+
+
+Definition at line 39 of file bt.c.
+
+\hypertarget{bt_8h_afcbfcbca8b25fe867ea8b7b0deeaef9c}{
+\index{bt.h@{bt.h}!bt\_\-delete@{bt\_\-delete}}
+\index{bt\_\-delete@{bt\_\-delete}!bt.h@{bt.h}}
+\subsubsection[{bt\_\-delete}]{\setlength{\rightskip}{0pt plus 5cm}void bt\_\-delete (
+\begin{DoxyParamCaption}
+\item[{{\bf bt\_\-tree} $\ast$}]{tree, }
+\item[{void $\ast$}]{data, }
+\item[{int}]{free\_\-contents}
+\end{DoxyParamCaption}
+)}}
+\label{bt_8h_afcbfcbca8b25fe867ea8b7b0deeaef9c}
+
+
+Deletes a node for the tree.
+
+This function uses the tree's compare function to search the tree for a node containing the given data. If a node containing the data is found then the node is freed otherwise no deletion is performed. If free\_\-contents is passed a non-\/zero value then the contents pointer of the node is also freed.
+
+
+\begin{DoxyParams}{Parameters}
+{\em tree} & The tree from which the node will be deleted. \\
+\hline
+{\em data} & The data to search for in the tree. \\
+\hline
+{\em free\_\-contents} & Determines whether the contents pointer will be freed. \\
+\hline
+\end{DoxyParams}
+\hypertarget{bt_8h_a4f6d976b294d6f4e0968e5d4e75a7d31}{
+\index{bt.h@{bt.h}!bt\_\-find@{bt\_\-find}}
+\index{bt\_\-find@{bt\_\-find}!bt.h@{bt.h}}
+\subsubsection[{bt\_\-find}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ bt\_\-find (
+\begin{DoxyParamCaption}
+\item[{{\bf bt\_\-tree} $\ast$}]{tree, }
+\item[{void $\ast$}]{data}
+\end{DoxyParamCaption}
+)}}
+\label{bt_8h_a4f6d976b294d6f4e0968e5d4e75a7d31}
+
+
+Finds and returns the data from a node containing the given data.
+
+This function uses the tree's compare function to search the tree for a node containing the given data. If a node containing the given data is found then the pointer to the contents of the node is returned. Otherwise a null pointer is returned.
+
+
+\begin{DoxyParams}{Parameters}
+{\em tree} & The tree to be searched. \\
+\hline
+{\em data} & The data to be searched for.\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+Pointer to the found data.
+\end{DoxyReturn}
+
+
+Definition at line 54 of file bt.c.
+
+\hypertarget{bt_8h_aa24dd75e23a367ec824d99793c2ba1bb}{
+\index{bt.h@{bt.h}!bt\_\-free@{bt\_\-free}}
+\index{bt\_\-free@{bt\_\-free}!bt.h@{bt.h}}
+\subsubsection[{bt\_\-free}]{\setlength{\rightskip}{0pt plus 5cm}void bt\_\-free (
+\begin{DoxyParamCaption}
+\item[{{\bf bt\_\-tree} $\ast$}]{tree, }
+\item[{int}]{free\_\-contents}
+\end{DoxyParamCaption}
+)}}
+\label{bt_8h_aa24dd75e23a367ec824d99793c2ba1bb}
+
+
+Frees the memory allocated for all nodes of a tree.
+
+This function frees all memory associated with the given tree. If free\_\-contents has a non-\/zero value then the contents pointer of each node will aslo be freed.
+
+
+\begin{DoxyParams}{Parameters}
+{\em tree} & The tree to be freed. \\
+\hline
+{\em free\_\-contents} & Determines whether the contents pointers will be freed. \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 34 of file bt.c.
+
+\hypertarget{bt_8h_a08bc1827223c57790bbf396cd60e3317}{
+\index{bt.h@{bt.h}!bt\_\-insert@{bt\_\-insert}}
+\index{bt\_\-insert@{bt\_\-insert}!bt.h@{bt.h}}
+\subsubsection[{bt\_\-insert}]{\setlength{\rightskip}{0pt plus 5cm}void bt\_\-insert (
+\begin{DoxyParamCaption}
+\item[{{\bf bt\_\-tree} $\ast$}]{tree, }
+\item[{void $\ast$}]{data}
+\end{DoxyParamCaption}
+)}}
+\label{bt_8h_a08bc1827223c57790bbf396cd60e3317}
+
+
+Inserts a new node into the tree.
+
+This function uses the tree's compare function to traverse the tree until an existing node with the given data is found or until a leaf node is reached. If a node exists containing the given data then no insertion is performed. If a leaf node is reached then the a new leaf node is created and set as the left or right child of that leaf node.
+
+
+\begin{DoxyParams}{Parameters}
+{\em tree} & The tree in which the node will be inserted. \\
+\hline
+{\em data} & The data that the new node will contain. \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 44 of file bt.c.
+
+\hypertarget{bt_8h_a3682c3b6d0e0d70a0280de485ca687cc}{
+\index{bt.h@{bt.h}!bt\_\-new@{bt\_\-new}}
+\index{bt\_\-new@{bt\_\-new}!bt.h@{bt.h}}
+\subsubsection[{bt\_\-new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf bt\_\-tree}$\ast$ bt\_\-new (
+\begin{DoxyParamCaption}
+\item[{{\bf bt\_\-compare\_\-func}}]{compare}
+\end{DoxyParamCaption}
+)}}
+\label{bt_8h_a3682c3b6d0e0d70a0280de485ca687cc}
+
+
+Creates a new empty binary tree.
+
+This function creates a new empty binary search tree with the given comparison function. The comparison function will be used during searching, insertions, and deletions, to find and traverse the tree.
+
+
+\begin{DoxyParams}{Parameters}
+{\em compare} & The function to use for comparing items in the tree.\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+Pointer to the newly created tree.
+\end{DoxyReturn}
+
+
+Definition at line 29 of file bt.c.
+
--- /dev/null
+1c44a8d7d290d71225b96567bd2507d6
\ No newline at end of file
\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
\fancyfoot[LE]{\fancyplain{}{}}
\fancyfoot[CE]{\fancyplain{}{}}
-\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated on Thu Mar 22 2012 16:12:15 for Data Structures by Doxygen }}
-\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated on Thu Mar 22 2012 16:12:15 for Data Structures by Doxygen }}
+\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated on Fri Mar 23 2012 11:12:03 for Data Structures by Doxygen }}
+\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated on Fri Mar 23 2012 11:12:03 for Data Structures by Doxygen }}
\fancyfoot[CO]{\fancyplain{}{}}
\fancyfoot[RO]{\fancyplain{}{}}
%---------- Internal commands used in this style file ----------------
{\ttfamily \#include $<$stdlib.h$>$}\par
{\ttfamily \#include $<$string.h$>$}\par
{\ttfamily \#include $<$stdio.h$>$}\par
-Include dependency graph for ht.c:
-\nopagebreak
+Include dependency graph for ht.c:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\begin{DoxyCompactList}\small\item\em Takes a string key value and returns it's hashed value. \item\end{DoxyCompactList}\item
\hyperlink{structht__table}{ht\_\-table} $\ast$ \hyperlink{ht_8c_a0a3e03a29413673acd8899d250cd0844}{ht\_\-new} (unsigned int size, \hyperlink{ht_8h_a91a8d03489ef281e6f26d389c44d42cf}{ht\_\-hash\_\-func} fn)
\begin{DoxyCompactList}\small\item\em Creates a new hash table of the given size using the provided hash function or the built-\/in string hashing function otherwise. \item\end{DoxyCompactList}\item
-void \hyperlink{ht_8c_a36132061ce1dfb439cde8c8caa2b63bc}{ht\_\-free} (\hyperlink{structht__table}{ht\_\-table} $\ast$table)
-\item
-int \hyperlink{ht_8c_a41caab4f2767cdd00399b2fb6f6ec424}{ht\_\-put} (\hyperlink{structht__table}{ht\_\-table} $\ast$table, void $\ast$key, void $\ast$val)
+void \hyperlink{ht_8c_a96de71bf3880ed0a879f60b6e5254803}{ht\_\-free} (\hyperlink{structht__table}{ht\_\-table} $\ast$table, int free\_\-key, int free\_\-value)
+\begin{DoxyCompactList}\small\item\em Frees all memory used by the provided hash table. \item\end{DoxyCompactList}\item
+void \hyperlink{ht_8c_a8c17c7288d2f510dd5c091cccc6dd056}{ht\_\-put} (\hyperlink{structht__table}{ht\_\-table} $\ast$table, void $\ast$key, void $\ast$val)
\begin{DoxyCompactList}\small\item\em Inserts a key/value pair into the provided table. \item\end{DoxyCompactList}\item
-void $\ast$ \hyperlink{ht_8c_a3d4217bc8aafc5cf0e37dda811afc3c5}{ht\_\-get} (\hyperlink{structht__table}{ht\_\-table} $\ast$table, char $\ast$key)
-\item
-unsigned int \hyperlink{ht_8c_abb67271f276fde7155cbbe63566d97c4}{ht\_\-delete} (\hyperlink{structht__table}{ht\_\-table} $\ast$table, char $\ast$key)
-\item
-unsigned int \hyperlink{ht_8c_a4c967f60d2129911b4311d9f4c7f3424}{ht\_\-resize} (\hyperlink{structht__table}{ht\_\-table} $\ast$table, unsigned int size)
+void $\ast$ \hyperlink{ht_8c_a5bc0ba0d31b944797e17a96372bce33e}{ht\_\-get} (\hyperlink{structht__table}{ht\_\-table} $\ast$table, void $\ast$key)
+\begin{DoxyCompactList}\small\item\em Retrieves a value from the provided table. \item\end{DoxyCompactList}\item
+void \hyperlink{ht_8c_a81a813f472a9b689032704fca76b3ce8}{ht\_\-delete} (\hyperlink{structht__table}{ht\_\-table} $\ast$table, void $\ast$key, int free\_\-key, int free\_\-value)
+\begin{DoxyCompactList}\small\item\em Deletes a key/value pair from the provided hash table. \item\end{DoxyCompactList}\item
+\hyperlink{structht__table}{ht\_\-table} $\ast$ \hyperlink{ht_8c_ad9cac6da8b459d5960079b0d95489960}{ht\_\-resize} (\hyperlink{structht__table}{ht\_\-table} $\ast$table, unsigned int size)
\begin{DoxyCompactList}\small\item\em Resizes the underlying table used for storing key/value pairs. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Function Documentation}
-\hypertarget{ht_8c_abb67271f276fde7155cbbe63566d97c4}{
+\hypertarget{ht_8c_a81a813f472a9b689032704fca76b3ce8}{
\index{ht.c@{ht.c}!ht\_\-delete@{ht\_\-delete}}
\index{ht\_\-delete@{ht\_\-delete}!ht.c@{ht.c}}
-\subsubsection[{ht\_\-delete}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int ht\_\-delete (
+\subsubsection[{ht\_\-delete}]{\setlength{\rightskip}{0pt plus 5cm}void ht\_\-delete (
\begin{DoxyParamCaption}
\item[{{\bf ht\_\-table} $\ast$}]{table, }
-\item[{char $\ast$}]{key}
+\item[{void $\ast$}]{key, }
+\item[{int}]{free\_\-key, }
+\item[{int}]{free\_\-value}
\end{DoxyParamCaption}
)}}
-\label{ht_8c_abb67271f276fde7155cbbe63566d97c4}
+\label{ht_8c_a81a813f472a9b689032704fca76b3ce8}
+
+
+Deletes a key/value pair from the provided hash table.
+
+
+\begin{DoxyParams}{Parameters}
+{\em table} & The table from which the key/value pait will be deleted. \\
+\hline
+{\em key} & The key for the key/value pair to be deleted. \\
+\hline
+{\em free\_\-key} & Determines whether the key pointer will be freed. \\
+\hline
+{\em free\_\-value} & Determines whether the value pointer will be freed. \\
+\hline
+\end{DoxyParams}
-Definition at line 116 of file ht.c.
+Definition at line 125 of file ht.c.
-\hypertarget{ht_8c_a36132061ce1dfb439cde8c8caa2b63bc}{
+\hypertarget{ht_8c_a96de71bf3880ed0a879f60b6e5254803}{
\index{ht.c@{ht.c}!ht\_\-free@{ht\_\-free}}
\index{ht\_\-free@{ht\_\-free}!ht.c@{ht.c}}
\subsubsection[{ht\_\-free}]{\setlength{\rightskip}{0pt plus 5cm}void ht\_\-free (
\begin{DoxyParamCaption}
-\item[{{\bf ht\_\-table} $\ast$}]{table}
+\item[{{\bf ht\_\-table} $\ast$}]{table, }
+\item[{int}]{free\_\-key, }
+\item[{int}]{free\_\-value}
\end{DoxyParamCaption}
)}}
-\label{ht_8c_a36132061ce1dfb439cde8c8caa2b63bc}
+\label{ht_8c_a96de71bf3880ed0a879f60b6e5254803}
+
+
+Frees all memory used by the provided hash table.
+
+
+\begin{DoxyParams}{Parameters}
+{\em table} & The table to be freed. \\
+\hline
+{\em free\_\-key} & Determines whether the key pointers will be freed. \\
+\hline
+{\em free\_\-value} & Determines whether the value pointers will be freed. \\
+\hline
+\end{DoxyParams}
-Definition at line 45 of file ht.c.
+Definition at line 55 of file ht.c.
-\hypertarget{ht_8c_a3d4217bc8aafc5cf0e37dda811afc3c5}{
+\hypertarget{ht_8c_a5bc0ba0d31b944797e17a96372bce33e}{
\index{ht.c@{ht.c}!ht\_\-get@{ht\_\-get}}
\index{ht\_\-get@{ht\_\-get}!ht.c@{ht.c}}
\subsubsection[{ht\_\-get}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ ht\_\-get (
\begin{DoxyParamCaption}
\item[{{\bf ht\_\-table} $\ast$}]{table, }
-\item[{char $\ast$}]{key}
+\item[{void $\ast$}]{key}
\end{DoxyParamCaption}
)}}
-\label{ht_8c_a3d4217bc8aafc5cf0e37dda811afc3c5}
+\label{ht_8c_a5bc0ba0d31b944797e17a96372bce33e}
+
+
+Retrieves a value from the provided table.
+
+
+\begin{DoxyParams}{Parameters}
+{\em table} & The table in which to find the associated value. \\
+\hline
+{\em key} & The key to lookup.\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+A pointer to the value associated with the provided key.
+\end{DoxyReturn}
-Definition at line 99 of file ht.c.
+Definition at line 108 of file ht.c.
\hypertarget{ht_8c_a278174a0154a10b8b10b23937ca4c721}{
\index{ht.c@{ht.c}!ht\_\-hash\_\-string@{ht\_\-hash\_\-string}}
\end{DoxyReturn}
-Definition at line 22 of file ht.c.
+Definition at line 32 of file ht.c.
-Here is the caller graph for this function:
-\nopagebreak
+Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\end{DoxyReturn}
-Definition at line 34 of file ht.c.
+Definition at line 44 of file ht.c.
-Here is the call graph for this function:
-\nopagebreak
+Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\end{figure}
-\hypertarget{ht_8c_a41caab4f2767cdd00399b2fb6f6ec424}{
+\hypertarget{ht_8c_a8c17c7288d2f510dd5c091cccc6dd056}{
\index{ht.c@{ht.c}!ht\_\-put@{ht\_\-put}}
\index{ht\_\-put@{ht\_\-put}!ht.c@{ht.c}}
-\subsubsection[{ht\_\-put}]{\setlength{\rightskip}{0pt plus 5cm}int ht\_\-put (
+\subsubsection[{ht\_\-put}]{\setlength{\rightskip}{0pt plus 5cm}void ht\_\-put (
\begin{DoxyParamCaption}
\item[{{\bf ht\_\-table} $\ast$}]{table, }
\item[{void $\ast$}]{key, }
\item[{void $\ast$}]{val}
\end{DoxyParamCaption}
)}}
-\label{ht_8c_a41caab4f2767cdd00399b2fb6f6ec424}
+\label{ht_8c_a8c17c7288d2f510dd5c091cccc6dd056}
Inserts a key/value pair into the provided table.
\end{DoxyParams}
-Definition at line 63 of file ht.c.
+Definition at line 73 of file ht.c.
-\hypertarget{ht_8c_a4c967f60d2129911b4311d9f4c7f3424}{
+\hypertarget{ht_8c_ad9cac6da8b459d5960079b0d95489960}{
\index{ht.c@{ht.c}!ht\_\-resize@{ht\_\-resize}}
\index{ht\_\-resize@{ht\_\-resize}!ht.c@{ht.c}}
-\subsubsection[{ht\_\-resize}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int ht\_\-resize (
+\subsubsection[{ht\_\-resize}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ht\_\-table}$\ast$ ht\_\-resize (
\begin{DoxyParamCaption}
\item[{{\bf ht\_\-table} $\ast$}]{table, }
\item[{unsigned int}]{size}
\end{DoxyParamCaption}
)}}
-\label{ht_8c_a4c967f60d2129911b4311d9f4c7f3424}
+\label{ht_8c_ad9cac6da8b459d5960079b0d95489960}
Resizes the underlying table used for storing key/value pairs.
\end{DoxyReturn}
-Definition at line 121 of file ht.c.
+Definition at line 130 of file ht.c.
\section{src/ht/ht.h File Reference}
\label{ht_8h}\index{src/ht/ht.h@{src/ht/ht.h}}
}
-This graph shows which files directly or indirectly include this file:
-\nopagebreak
+This graph shows which files directly or indirectly include this file:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item
-struct \hyperlink{structnode}{node}
+struct \hyperlink{structht__node}{ht\_\-node}
\begin{DoxyCompactList}\small\item\em A node in a hash table. \item\end{DoxyCompactList}\item
struct \hyperlink{structht__table}{ht\_\-table}
\begin{DoxyCompactList}\small\item\em A hash table. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\item
typedef unsigned int($\ast$ \hyperlink{ht_8h_a91a8d03489ef281e6f26d389c44d42cf}{ht\_\-hash\_\-func} )(void $\ast$)
\begin{DoxyCompactList}\small\item\em Hash function for hashing keys in a hash table. \item\end{DoxyCompactList}\item
-typedef struct \hyperlink{structnode}{node} \hyperlink{ht_8h_a27a2fadaf99569e4b5c18dbd0b0a8160}{ht\_\-node}
+typedef struct \hyperlink{structht__node}{ht\_\-node} \hyperlink{ht_8h_a3b70269a378f408bce2ae501e7ed1205}{ht\_\-node}
\begin{DoxyCompactList}\small\item\em A node in a hash table. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
-Definition at line 21 of file ht.h.
+Definition at line 31 of file ht.h.
-\hypertarget{ht_8h_a27a2fadaf99569e4b5c18dbd0b0a8160}{
+\hypertarget{ht_8h_a3b70269a378f408bce2ae501e7ed1205}{
\index{ht.h@{ht.h}!ht\_\-node@{ht\_\-node}}
\index{ht\_\-node@{ht\_\-node}!ht.h@{ht.h}}
-\subsubsection[{ht\_\-node}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf node} {\bf ht\_\-node}}}
-\label{ht_8h_a27a2fadaf99569e4b5c18dbd0b0a8160}
+\subsubsection[{ht\_\-node}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf ht\_\-node} {\bf ht\_\-node}}}
+\label{ht_8h_a3b70269a378f408bce2ae501e7ed1205}
A node in a hash table.
{\em free\_\-value} & Determines whether the value pointer will be freed. \\
\hline
\end{DoxyParams}
+
+
+Definition at line 125 of file ht.c.
+
\hypertarget{ht_8h_a96de71bf3880ed0a879f60b6e5254803}{
\index{ht.h@{ht.h}!ht\_\-free@{ht\_\-free}}
\index{ht\_\-free@{ht\_\-free}!ht.h@{ht.h}}
{\em free\_\-value} & Determines whether the value pointers will be freed. \\
\hline
\end{DoxyParams}
+
+
+Definition at line 55 of file ht.c.
+
\hypertarget{ht_8h_a5bc0ba0d31b944797e17a96372bce33e}{
\index{ht.h@{ht.h}!ht\_\-get@{ht\_\-get}}
\index{ht\_\-get@{ht\_\-get}!ht.h@{ht.h}}
\begin{DoxyReturn}{Returns}
A pointer to the value associated with the provided key.
\end{DoxyReturn}
+
+
+Definition at line 108 of file ht.c.
+
\hypertarget{ht_8h_a278174a0154a10b8b10b23937ca4c721}{
\index{ht.h@{ht.h}!ht\_\-hash\_\-string@{ht\_\-hash\_\-string}}
\index{ht\_\-hash\_\-string@{ht\_\-hash\_\-string}!ht.h@{ht.h}}
\end{DoxyReturn}
-Definition at line 22 of file ht.c.
+Definition at line 32 of file ht.c.
-Here is the caller graph for this function:
-\nopagebreak
+Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\end{DoxyReturn}
-Definition at line 34 of file ht.c.
+Definition at line 44 of file ht.c.
-Here is the call graph for this function:
-\nopagebreak
+Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\end{DoxyParams}
-Definition at line 63 of file ht.c.
+Definition at line 73 of file ht.c.
\hypertarget{ht_8h_ad9cac6da8b459d5960079b0d95489960}{
\index{ht.h@{ht.h}!ht\_\-resize@{ht\_\-resize}}
\end{DoxyReturn}
-Definition at line 121 of file ht.c.
+Definition at line 130 of file ht.c.
\vspace*{1cm}
{\large Generated by Doxygen 1.7.3}\\
\vspace*{0.5cm}
-{\small Thu Mar 22 2012 16:12:15}\\
+{\small Fri Mar 23 2012 11:12:03}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
\chapter{File Index}
\input{files}
\chapter{Class Documentation}
+\input{structbt__node}
+\input{structbt__tree}
+\input{structht__node}
\input{structht__table}
-\input{structnode}
+\input{structsll__node}
\chapter{File Documentation}
\input{ht_8c}
\input{ht_8h}
}
{\ttfamily \#include \char`\"{}sll.h\char`\"{}}\par
{\ttfamily \#include $<$stdlib.h$>$}\par
-Include dependency graph for sll.c:
-\nopagebreak
+Include dependency graph for sll.c:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
-\hyperlink{structnode}{sll\_\-node} $\ast$ \hyperlink{sll_8c_a471151d11dc385e3364c9a38b19ecba7}{sll\_\-new} (void $\ast$contents)
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8c_a471151d11dc385e3364c9a38b19ecba7}{sll\_\-new} (void $\ast$contents)
\begin{DoxyCompactList}\small\item\em Creates a new linked list node with the supplied value. \item\end{DoxyCompactList}\item
-\hyperlink{structnode}{sll\_\-node} $\ast$ \hyperlink{sll_8c_af7327f24d1900d495c1bf914a592b631}{sll\_\-last} (\hyperlink{structnode}{sll\_\-node} $\ast$list)
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8c_abe6fe02fbfcbf1d647ff94295b855e7e}{sll\_\-front} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list)
+\begin{DoxyCompactList}\small\item\em Finds and returns the first node in the supplied linked list. \item\end{DoxyCompactList}\item
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8c_a78ef5151212d47bb63f2fd93453283ed}{sll\_\-back} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list)
\begin{DoxyCompactList}\small\item\em Finds and returns the last node in the supplied linked list. \item\end{DoxyCompactList}\item
-\hyperlink{structnode}{sll\_\-node} $\ast$ \hyperlink{sll_8c_aaf7e4557200dec55dec679f63de2b4d1}{sll\_\-get} (\hyperlink{structnode}{sll\_\-node} $\ast$list, int index)
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8c_a0582f263482ead73d53b018978513540}{sll\_\-index} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, int index)
\begin{DoxyCompactList}\small\item\em Return the node at the specified index in a linked list. \item\end{DoxyCompactList}\item
-\hyperlink{structnode}{sll\_\-node} $\ast$ \hyperlink{sll_8c_a0751beeb21d1540c9ddcd5e01964e23e}{sll\_\-add} (\hyperlink{structnode}{sll\_\-node} $\ast$list, void $\ast$contents)
-\begin{DoxyCompactList}\small\item\em Adds a new node to an existing linked list. \item\end{DoxyCompactList}\item
-\hyperlink{structnode}{sll\_\-node} $\ast$ \hyperlink{sll_8c_a66769edc21579f71972ac90de6da4a9f}{sll\_\-insert} (\hyperlink{structnode}{sll\_\-node} $\ast$list, int index, void $\ast$contents)
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8c_a19ad0a86a87451a3ab68ad6d18c3e3e0}{sll\_\-push\_\-back} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, void $\ast$contents)
+\begin{DoxyCompactList}\small\item\em Adds a new node to the end of an existing linked list. \item\end{DoxyCompactList}\item
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8c_acfe3ebc296fe75f1d0ee21195dd7b9bf}{sll\_\-push\_\-front} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, void $\ast$contents)
+\begin{DoxyCompactList}\small\item\em Adds a new node to the front of an existing linked list. \item\end{DoxyCompactList}\item
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8c_af72e93329186ac936d2bf6f544aa1f6b}{sll\_\-pop\_\-back} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list)
+\begin{DoxyCompactList}\small\item\em Removes and returns a pointer to the last element of the list. \item\end{DoxyCompactList}\item
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8c_a1588e5a1f90852ee48403d5313d64269}{sll\_\-pop\_\-front} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list)
+\begin{DoxyCompactList}\small\item\em Removes and returns a pointer to the first element of the list. \item\end{DoxyCompactList}\item
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8c_a66769edc21579f71972ac90de6da4a9f}{sll\_\-insert} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, int index, void $\ast$contents)
\begin{DoxyCompactList}\small\item\em Inserts a new node in a linked list at the specified index. \item\end{DoxyCompactList}\item
-\hyperlink{structnode}{sll\_\-node} $\ast$ \hyperlink{sll_8c_afd494f171c24981f0d7a007841f21cfe}{sll\_\-delete} (\hyperlink{structnode}{sll\_\-node} $\ast$list, int index, int free\_\-contents)
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8c_afd494f171c24981f0d7a007841f21cfe}{sll\_\-delete} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, int index, int free\_\-contents)
\begin{DoxyCompactList}\small\item\em Deletes a node from the supplied list. \item\end{DoxyCompactList}\item
-void \hyperlink{sll_8c_a7373cc6bac0876b330da73722e24910b}{sll\_\-free} (\hyperlink{structnode}{sll\_\-node} $\ast$list, int free\_\-contents)
+void \hyperlink{sll_8c_a7373cc6bac0876b330da73722e24910b}{sll\_\-free} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, int free\_\-contents)
\begin{DoxyCompactList}\small\item\em Frees all memory used by a linked list. \item\end{DoxyCompactList}\item
-unsigned int \hyperlink{sll_8c_af5f6589df6d0ef48ed6f57ac5527ddfe}{sll\_\-length} (\hyperlink{structnode}{sll\_\-node} $\ast$list)
+unsigned int \hyperlink{sll_8c_af5f6589df6d0ef48ed6f57ac5527ddfe}{sll\_\-length} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list)
\begin{DoxyCompactList}\small\item\em Returns the number of elements in the list. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Function Documentation}
-\hypertarget{sll_8c_a0751beeb21d1540c9ddcd5e01964e23e}{
-\index{sll.c@{sll.c}!sll\_\-add@{sll\_\-add}}
-\index{sll\_\-add@{sll\_\-add}!sll.c@{sll.c}}
-\subsubsection[{sll\_\-add}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-add (
+\hypertarget{sll_8c_a78ef5151212d47bb63f2fd93453283ed}{
+\index{sll.c@{sll.c}!sll\_\-back@{sll\_\-back}}
+\index{sll\_\-back@{sll\_\-back}!sll.c@{sll.c}}
+\subsubsection[{sll\_\-back}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-back (
\begin{DoxyParamCaption}
-\item[{{\bf sll\_\-node} $\ast$}]{list, }
-\item[{void $\ast$}]{contents}
+\item[{{\bf sll\_\-node} $\ast$}]{list}
\end{DoxyParamCaption}
)}}
-\label{sll_8c_a0751beeb21d1540c9ddcd5e01964e23e}
+\label{sll_8c_a78ef5151212d47bb63f2fd93453283ed}
-Adds a new node to an existing linked list.
+Finds and returns the last node in the supplied linked list.
\begin{DoxyParams}{Parameters}
-{\em list} & \\
-\hline
-{\em contents} & \\
+{\em list} & The linked list to search.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-Pointer to the newly added node.
+Pointer to the last node in the supplied list.
\end{DoxyReturn}
-Definition at line 59 of file sll.c.
+Definition at line 42 of file sll.c.
-Here is the call graph for this function:
-\nopagebreak
+Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=214pt]{sll_8c_a0751beeb21d1540c9ddcd5e01964e23e_cgraph}
+\includegraphics[width=250pt]{sll_8c_a78ef5151212d47bb63f2fd93453283ed_icgraph}
\end{center}
\end{figure}
\end{DoxyReturn}
-Definition at line 79 of file sll.c.
+Definition at line 102 of file sll.c.
-Here is the call graph for this function:
-\nopagebreak
+Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=220pt]{sll_8c_afd494f171c24981f0d7a007841f21cfe_cgraph}
+\includegraphics[width=230pt]{sll_8c_afd494f171c24981f0d7a007841f21cfe_cgraph}
\end{center}
\end{figure}
\end{DoxyParams}
-Definition at line 96 of file sll.c.
+Definition at line 119 of file sll.c.
+
+\hypertarget{sll_8c_abe6fe02fbfcbf1d647ff94295b855e7e}{
+\index{sll.c@{sll.c}!sll\_\-front@{sll\_\-front}}
+\index{sll\_\-front@{sll\_\-front}!sll.c@{sll.c}}
+\subsubsection[{sll\_\-front}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-front (
+\begin{DoxyParamCaption}
+\item[{{\bf sll\_\-node} $\ast$}]{list}
+\end{DoxyParamCaption}
+)}}
+\label{sll_8c_abe6fe02fbfcbf1d647ff94295b855e7e}
+
+
+Finds and returns the first node in the supplied linked list.
+
+
+\begin{DoxyParams}{Parameters}
+{\em list} & The linked list to search.\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+Pointer to the last node in the supplied list.
+\end{DoxyReturn}
+
+
+Definition at line 38 of file sll.c.
-\hypertarget{sll_8c_aaf7e4557200dec55dec679f63de2b4d1}{
-\index{sll.c@{sll.c}!sll\_\-get@{sll\_\-get}}
-\index{sll\_\-get@{sll\_\-get}!sll.c@{sll.c}}
-\subsubsection[{sll\_\-get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-get (
+\hypertarget{sll_8c_a0582f263482ead73d53b018978513540}{
+\index{sll.c@{sll.c}!sll\_\-index@{sll\_\-index}}
+\index{sll\_\-index@{sll\_\-index}!sll.c@{sll.c}}
+\subsubsection[{sll\_\-index}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-index (
\begin{DoxyParamCaption}
\item[{{\bf sll\_\-node} $\ast$}]{list, }
\item[{int}]{index}
\end{DoxyParamCaption}
)}}
-\label{sll_8c_aaf7e4557200dec55dec679f63de2b4d1}
+\label{sll_8c_a0582f263482ead73d53b018978513540}
Return the node at the specified index in a linked list.
\end{DoxyReturn}
-Definition at line 41 of file sll.c.
+Definition at line 52 of file sll.c.
-Here is the caller graph for this function:
-\nopagebreak
+Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=220pt]{sll_8c_aaf7e4557200dec55dec679f63de2b4d1_icgraph}
+\includegraphics[width=230pt]{sll_8c_a0582f263482ead73d53b018978513540_icgraph}
\end{center}
\end{figure}
\end{DoxyReturn}
-Definition at line 65 of file sll.c.
+Definition at line 88 of file sll.c.
-Here is the call graph for this function:
-\nopagebreak
+Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=222pt]{sll_8c_a66769edc21579f71972ac90de6da4a9f_cgraph}
+\includegraphics[width=228pt]{sll_8c_a66769edc21579f71972ac90de6da4a9f_cgraph}
\end{center}
\end{figure}
-\hypertarget{sll_8c_af7327f24d1900d495c1bf914a592b631}{
-\index{sll.c@{sll.c}!sll\_\-last@{sll\_\-last}}
-\index{sll\_\-last@{sll\_\-last}!sll.c@{sll.c}}
-\subsubsection[{sll\_\-last}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-last (
+\hypertarget{sll_8c_af5f6589df6d0ef48ed6f57ac5527ddfe}{
+\index{sll.c@{sll.c}!sll\_\-length@{sll\_\-length}}
+\index{sll\_\-length@{sll\_\-length}!sll.c@{sll.c}}
+\subsubsection[{sll\_\-length}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int sll\_\-length (
\begin{DoxyParamCaption}
\item[{{\bf sll\_\-node} $\ast$}]{list}
\end{DoxyParamCaption}
)}}
-\label{sll_8c_af7327f24d1900d495c1bf914a592b631}
+\label{sll_8c_af5f6589df6d0ef48ed6f57ac5527ddfe}
-Finds and returns the last node in the supplied linked list.
+Returns the number of elements in the list.
+
+Loops through the supplied list and returns a count of the number of elements contained in the list.
\begin{DoxyParams}{Parameters}
-{\em list} & The linked list to search.\\
+{\em list} & The list to be counted.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-Pointer to the last node in the supplied list.
+The number of elements in the list.
\end{DoxyReturn}
-Definition at line 31 of file sll.c.
+Definition at line 134 of file sll.c.
+\hypertarget{sll_8c_a471151d11dc385e3364c9a38b19ecba7}{
+\index{sll.c@{sll.c}!sll\_\-new@{sll\_\-new}}
+\index{sll\_\-new@{sll\_\-new}!sll.c@{sll.c}}
+\subsubsection[{sll\_\-new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-new (
+\begin{DoxyParamCaption}
+\item[{void $\ast$}]{contents}
+\end{DoxyParamCaption}
+)}}
+\label{sll_8c_a471151d11dc385e3364c9a38b19ecba7}
-Here is the caller graph for this function:
-\nopagebreak
+Creates a new linked list node with the supplied value.
+
+This function allocates a new node on the heap and populates the node contents with the supplied contents pointer.
+
+
+\begin{DoxyParams}{Parameters}
+{\em contents} & The contents of the newly created node.\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+A pointer to the newly created node.
+\end{DoxyReturn}
+
+
+Definition at line 30 of file sll.c.
+
+
+
+Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=212pt]{sll_8c_af7327f24d1900d495c1bf914a592b631_icgraph}
+\includegraphics[width=246pt]{sll_8c_a471151d11dc385e3364c9a38b19ecba7_icgraph}
\end{center}
\end{figure}
-\hypertarget{sll_8c_af5f6589df6d0ef48ed6f57ac5527ddfe}{
-\index{sll.c@{sll.c}!sll\_\-length@{sll\_\-length}}
-\index{sll\_\-length@{sll\_\-length}!sll.c@{sll.c}}
-\subsubsection[{sll\_\-length}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int sll\_\-length (
+\hypertarget{sll_8c_af72e93329186ac936d2bf6f544aa1f6b}{
+\index{sll.c@{sll.c}!sll\_\-pop\_\-back@{sll\_\-pop\_\-back}}
+\index{sll\_\-pop\_\-back@{sll\_\-pop\_\-back}!sll.c@{sll.c}}
+\subsubsection[{sll\_\-pop\_\-back}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-pop\_\-back (
\begin{DoxyParamCaption}
\item[{{\bf sll\_\-node} $\ast$}]{list}
\end{DoxyParamCaption}
)}}
-\label{sll_8c_af5f6589df6d0ef48ed6f57ac5527ddfe}
+\label{sll_8c_af72e93329186ac936d2bf6f544aa1f6b}
-Returns the number of elements in the list.
+Removes and returns a pointer to the last element of the list.
+
+
+\begin{DoxyParams}{Parameters}
+{\em list} & \\
+\hline
+{\em contents} & \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+Pointer to the newly added node.
+\end{DoxyReturn}
-Loops through the supplied list and returns a count of the number of elements contained in the list.
+
+Definition at line 80 of file sll.c.
+
+\hypertarget{sll_8c_a1588e5a1f90852ee48403d5313d64269}{
+\index{sll.c@{sll.c}!sll\_\-pop\_\-front@{sll\_\-pop\_\-front}}
+\index{sll\_\-pop\_\-front@{sll\_\-pop\_\-front}!sll.c@{sll.c}}
+\subsubsection[{sll\_\-pop\_\-front}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-pop\_\-front (
+\begin{DoxyParamCaption}
+\item[{{\bf sll\_\-node} $\ast$}]{list}
+\end{DoxyParamCaption}
+)}}
+\label{sll_8c_a1588e5a1f90852ee48403d5313d64269}
+
+
+Removes and returns a pointer to the first element of the list.
\begin{DoxyParams}{Parameters}
-{\em list} & The list to be counted.\\
+{\em list} & \\
+\hline
+{\em contents} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-The number of elements in the list.
+Pointer to the newly added node.
\end{DoxyReturn}
-Definition at line 111 of file sll.c.
+Definition at line 84 of file sll.c.
-\hypertarget{sll_8c_a471151d11dc385e3364c9a38b19ecba7}{
-\index{sll.c@{sll.c}!sll\_\-new@{sll\_\-new}}
-\index{sll\_\-new@{sll\_\-new}!sll.c@{sll.c}}
-\subsubsection[{sll\_\-new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-new (
+\hypertarget{sll_8c_a19ad0a86a87451a3ab68ad6d18c3e3e0}{
+\index{sll.c@{sll.c}!sll\_\-push\_\-back@{sll\_\-push\_\-back}}
+\index{sll\_\-push\_\-back@{sll\_\-push\_\-back}!sll.c@{sll.c}}
+\subsubsection[{sll\_\-push\_\-back}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-push\_\-back (
\begin{DoxyParamCaption}
+\item[{{\bf sll\_\-node} $\ast$}]{list, }
\item[{void $\ast$}]{contents}
\end{DoxyParamCaption}
)}}
-\label{sll_8c_a471151d11dc385e3364c9a38b19ecba7}
+\label{sll_8c_a19ad0a86a87451a3ab68ad6d18c3e3e0}
-Creates a new linked list node with the supplied value.
-
-Allocates a new node on the heap and populates the node contents with the supplied contents pointer.
+Adds a new node to the end of an existing linked list.
\begin{DoxyParams}{Parameters}
-{\em contents} & The contents of the newly created node.\\
+{\em list} & \\
+\hline
+{\em contents} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-A pointer to the newly created node.
+Pointer to the newly added node.
\end{DoxyReturn}
-Definition at line 23 of file sll.c.
+Definition at line 70 of file sll.c.
-Here is the caller graph for this function:
-\nopagebreak
+Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=222pt]{sll_8c_a471151d11dc385e3364c9a38b19ecba7_icgraph}
+\includegraphics[width=250pt]{sll_8c_a19ad0a86a87451a3ab68ad6d18c3e3e0_cgraph}
\end{center}
\end{figure}
+\hypertarget{sll_8c_acfe3ebc296fe75f1d0ee21195dd7b9bf}{
+\index{sll.c@{sll.c}!sll\_\-push\_\-front@{sll\_\-push\_\-front}}
+\index{sll\_\-push\_\-front@{sll\_\-push\_\-front}!sll.c@{sll.c}}
+\subsubsection[{sll\_\-push\_\-front}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-push\_\-front (
+\begin{DoxyParamCaption}
+\item[{{\bf sll\_\-node} $\ast$}]{list, }
+\item[{void $\ast$}]{contents}
+\end{DoxyParamCaption}
+)}}
+\label{sll_8c_acfe3ebc296fe75f1d0ee21195dd7b9bf}
+
+
+Adds a new node to the front of an existing linked list.
+
+
+\begin{DoxyParams}{Parameters}
+{\em list} & \\
+\hline
+{\em contents} & \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+Pointer to the newly added node.
+\end{DoxyReturn}
+
+
+Definition at line 76 of file sll.c.
+
--- /dev/null
+97869c702dd3b7d1f194fdca6b728d80
\ No newline at end of file
--- /dev/null
+19e92655d2cd2aed2ed1ac777c5a4137
\ No newline at end of file
-fa69abfe1524b408e1013703ef11ab79
\ No newline at end of file
+593f610131b43e39c633453ac1cd8021
\ No newline at end of file
-24bbfb6c09b742de8660687837fb6d72
\ No newline at end of file
+ce51c1faa4690651fe962f50f6718bc2
\ No newline at end of file
--- /dev/null
+ce635f8e203afe654ab1fbbed4de8e33
\ No newline at end of file
-4cd3c941317bf91587f919a442219736
\ No newline at end of file
+4a11eeb37ed04053ce55403269c262c4
\ No newline at end of file
\section{src/lists/single\_\-link/sll.h File Reference}
\label{sll_8h}\index{src/lists/single\_\-link/sll.h@{src/lists/single\_\-link/sll.h}}
}
-This graph shows which files directly or indirectly include this file:
-\nopagebreak
+This graph shows which files directly or indirectly include this file:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item
-struct \hyperlink{structnode}{node}
-\begin{DoxyCompactList}\small\item\em A node in a hash table. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
+struct \hyperlink{structsll__node}{sll\_\-node}
+\begin{DoxyCompactList}\small\item\em A linked list node. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item
-typedef struct \hyperlink{structnode}{node} \hyperlink{sll_8h_a74030fe22c7f9308540aee0c4259b111}{sll\_\-node}
-\end{DoxyCompactItemize}
+typedef struct \hyperlink{structsll__node}{sll\_\-node} \hyperlink{sll_8h_a168d63554ec6362ceecf64acc3e15bce}{sll\_\-node}
+\begin{DoxyCompactList}\small\item\em A linked list node. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
-\hyperlink{structnode}{sll\_\-node} $\ast$ \hyperlink{sll_8h_a471151d11dc385e3364c9a38b19ecba7}{sll\_\-new} (void $\ast$contents)
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8h_a471151d11dc385e3364c9a38b19ecba7}{sll\_\-new} (void $\ast$contents)
\begin{DoxyCompactList}\small\item\em Creates a new linked list node with the supplied value. \item\end{DoxyCompactList}\item
-\hyperlink{structnode}{sll\_\-node} $\ast$ \hyperlink{sll_8h_af7327f24d1900d495c1bf914a592b631}{sll\_\-last} (\hyperlink{structnode}{sll\_\-node} $\ast$list)
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8h_abe6fe02fbfcbf1d647ff94295b855e7e}{sll\_\-front} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list)
+\begin{DoxyCompactList}\small\item\em Finds and returns the first node in the supplied linked list. \item\end{DoxyCompactList}\item
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8h_a78ef5151212d47bb63f2fd93453283ed}{sll\_\-back} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list)
\begin{DoxyCompactList}\small\item\em Finds and returns the last node in the supplied linked list. \item\end{DoxyCompactList}\item
-\hyperlink{structnode}{sll\_\-node} $\ast$ \hyperlink{sll_8h_aaf7e4557200dec55dec679f63de2b4d1}{sll\_\-get} (\hyperlink{structnode}{sll\_\-node} $\ast$list, int index)
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8h_a0582f263482ead73d53b018978513540}{sll\_\-index} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, int index)
\begin{DoxyCompactList}\small\item\em Return the node at the specified index in a linked list. \item\end{DoxyCompactList}\item
-\hyperlink{structnode}{sll\_\-node} $\ast$ \hyperlink{sll_8h_a0751beeb21d1540c9ddcd5e01964e23e}{sll\_\-add} (\hyperlink{structnode}{sll\_\-node} $\ast$list, void $\ast$contents)
-\begin{DoxyCompactList}\small\item\em Adds a new node to an existing linked list. \item\end{DoxyCompactList}\item
-\hyperlink{structnode}{sll\_\-node} $\ast$ \hyperlink{sll_8h_a66769edc21579f71972ac90de6da4a9f}{sll\_\-insert} (\hyperlink{structnode}{sll\_\-node} $\ast$list, int index, void $\ast$contents)
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8h_a19ad0a86a87451a3ab68ad6d18c3e3e0}{sll\_\-push\_\-back} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, void $\ast$contents)
+\begin{DoxyCompactList}\small\item\em Adds a new node to the end of an existing linked list. \item\end{DoxyCompactList}\item
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8h_acfe3ebc296fe75f1d0ee21195dd7b9bf}{sll\_\-push\_\-front} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, void $\ast$contents)
+\begin{DoxyCompactList}\small\item\em Adds a new node to the front of an existing linked list. \item\end{DoxyCompactList}\item
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8h_af72e93329186ac936d2bf6f544aa1f6b}{sll\_\-pop\_\-back} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list)
+\begin{DoxyCompactList}\small\item\em Removes and returns a pointer to the last element of the list. \item\end{DoxyCompactList}\item
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8h_a1588e5a1f90852ee48403d5313d64269}{sll\_\-pop\_\-front} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list)
+\begin{DoxyCompactList}\small\item\em Removes and returns a pointer to the first element of the list. \item\end{DoxyCompactList}\item
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8h_a66769edc21579f71972ac90de6da4a9f}{sll\_\-insert} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, int index, void $\ast$contents)
\begin{DoxyCompactList}\small\item\em Inserts a new node in a linked list at the specified index. \item\end{DoxyCompactList}\item
-\hyperlink{structnode}{sll\_\-node} $\ast$ \hyperlink{sll_8h_afd494f171c24981f0d7a007841f21cfe}{sll\_\-delete} (\hyperlink{structnode}{sll\_\-node} $\ast$list, int index, int free\_\-contents)
+\hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8h_afd494f171c24981f0d7a007841f21cfe}{sll\_\-delete} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, int index, int free\_\-contents)
\begin{DoxyCompactList}\small\item\em Deletes a node from the supplied list. \item\end{DoxyCompactList}\item
-void \hyperlink{sll_8h_a7373cc6bac0876b330da73722e24910b}{sll\_\-free} (\hyperlink{structnode}{sll\_\-node} $\ast$list, int free\_\-contents)
+void \hyperlink{sll_8h_a7373cc6bac0876b330da73722e24910b}{sll\_\-free} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, int free\_\-contents)
\begin{DoxyCompactList}\small\item\em Frees all memory used by a linked list. \item\end{DoxyCompactList}\item
-unsigned int \hyperlink{sll_8h_af5f6589df6d0ef48ed6f57ac5527ddfe}{sll\_\-length} (\hyperlink{structnode}{sll\_\-node} $\ast$list)
+unsigned int \hyperlink{sll_8h_af5f6589df6d0ef48ed6f57ac5527ddfe}{sll\_\-length} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list)
\begin{DoxyCompactList}\small\item\em Returns the number of elements in the list. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Typedef Documentation}
-\hypertarget{sll_8h_a74030fe22c7f9308540aee0c4259b111}{
+\hypertarget{sll_8h_a168d63554ec6362ceecf64acc3e15bce}{
\index{sll.h@{sll.h}!sll\_\-node@{sll\_\-node}}
\index{sll\_\-node@{sll\_\-node}!sll.h@{sll.h}}
-\subsubsection[{sll\_\-node}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf node} {\bf sll\_\-node}}}
-\label{sll_8h_a74030fe22c7f9308540aee0c4259b111}
+\subsubsection[{sll\_\-node}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf sll\_\-node} {\bf sll\_\-node}}}
+\label{sll_8h_a168d63554ec6362ceecf64acc3e15bce}
+
+
+A linked list node.
+
\subsection{Function Documentation}
-\hypertarget{sll_8h_a0751beeb21d1540c9ddcd5e01964e23e}{
-\index{sll.h@{sll.h}!sll\_\-add@{sll\_\-add}}
-\index{sll\_\-add@{sll\_\-add}!sll.h@{sll.h}}
-\subsubsection[{sll\_\-add}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-add (
+\hypertarget{sll_8h_a78ef5151212d47bb63f2fd93453283ed}{
+\index{sll.h@{sll.h}!sll\_\-back@{sll\_\-back}}
+\index{sll\_\-back@{sll\_\-back}!sll.h@{sll.h}}
+\subsubsection[{sll\_\-back}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-back (
\begin{DoxyParamCaption}
-\item[{{\bf sll\_\-node} $\ast$}]{list, }
-\item[{void $\ast$}]{contents}
+\item[{{\bf sll\_\-node} $\ast$}]{list}
\end{DoxyParamCaption}
)}}
-\label{sll_8h_a0751beeb21d1540c9ddcd5e01964e23e}
+\label{sll_8h_a78ef5151212d47bb63f2fd93453283ed}
-Adds a new node to an existing linked list.
+Finds and returns the last node in the supplied linked list.
\begin{DoxyParams}{Parameters}
-{\em list} & \\
-\hline
-{\em contents} & \\
+{\em list} & The linked list to search.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-Pointer to the newly added node.
+Pointer to the last node in the supplied list.
\end{DoxyReturn}
-Definition at line 59 of file sll.c.
+Definition at line 42 of file sll.c.
-Here is the call graph for this function:
-\nopagebreak
+Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=214pt]{sll_8h_a0751beeb21d1540c9ddcd5e01964e23e_cgraph}
+\includegraphics[width=250pt]{sll_8h_a78ef5151212d47bb63f2fd93453283ed_icgraph}
\end{center}
\end{figure}
\end{DoxyReturn}
-Definition at line 79 of file sll.c.
+Definition at line 102 of file sll.c.
-Here is the call graph for this function:
-\nopagebreak
+Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=220pt]{sll_8h_afd494f171c24981f0d7a007841f21cfe_cgraph}
+\includegraphics[width=230pt]{sll_8h_afd494f171c24981f0d7a007841f21cfe_cgraph}
\end{center}
\end{figure}
\end{DoxyParams}
-Definition at line 96 of file sll.c.
+Definition at line 119 of file sll.c.
+
+\hypertarget{sll_8h_abe6fe02fbfcbf1d647ff94295b855e7e}{
+\index{sll.h@{sll.h}!sll\_\-front@{sll\_\-front}}
+\index{sll\_\-front@{sll\_\-front}!sll.h@{sll.h}}
+\subsubsection[{sll\_\-front}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-front (
+\begin{DoxyParamCaption}
+\item[{{\bf sll\_\-node} $\ast$}]{list}
+\end{DoxyParamCaption}
+)}}
+\label{sll_8h_abe6fe02fbfcbf1d647ff94295b855e7e}
+
+
+Finds and returns the first node in the supplied linked list.
+
+
+\begin{DoxyParams}{Parameters}
+{\em list} & The linked list to search.\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+Pointer to the last node in the supplied list.
+\end{DoxyReturn}
+
+
+Definition at line 38 of file sll.c.
-\hypertarget{sll_8h_aaf7e4557200dec55dec679f63de2b4d1}{
-\index{sll.h@{sll.h}!sll\_\-get@{sll\_\-get}}
-\index{sll\_\-get@{sll\_\-get}!sll.h@{sll.h}}
-\subsubsection[{sll\_\-get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-get (
+\hypertarget{sll_8h_a0582f263482ead73d53b018978513540}{
+\index{sll.h@{sll.h}!sll\_\-index@{sll\_\-index}}
+\index{sll\_\-index@{sll\_\-index}!sll.h@{sll.h}}
+\subsubsection[{sll\_\-index}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-index (
\begin{DoxyParamCaption}
\item[{{\bf sll\_\-node} $\ast$}]{list, }
\item[{int}]{index}
\end{DoxyParamCaption}
)}}
-\label{sll_8h_aaf7e4557200dec55dec679f63de2b4d1}
+\label{sll_8h_a0582f263482ead73d53b018978513540}
Return the node at the specified index in a linked list.
\end{DoxyReturn}
-Definition at line 41 of file sll.c.
+Definition at line 52 of file sll.c.
-Here is the caller graph for this function:
-\nopagebreak
+Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=220pt]{sll_8h_aaf7e4557200dec55dec679f63de2b4d1_icgraph}
+\includegraphics[width=230pt]{sll_8h_a0582f263482ead73d53b018978513540_icgraph}
\end{center}
\end{figure}
\end{DoxyReturn}
-Definition at line 65 of file sll.c.
+Definition at line 88 of file sll.c.
-Here is the call graph for this function:
-\nopagebreak
+Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=222pt]{sll_8h_a66769edc21579f71972ac90de6da4a9f_cgraph}
+\includegraphics[width=228pt]{sll_8h_a66769edc21579f71972ac90de6da4a9f_cgraph}
\end{center}
\end{figure}
-\hypertarget{sll_8h_af7327f24d1900d495c1bf914a592b631}{
-\index{sll.h@{sll.h}!sll\_\-last@{sll\_\-last}}
-\index{sll\_\-last@{sll\_\-last}!sll.h@{sll.h}}
-\subsubsection[{sll\_\-last}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-last (
+\hypertarget{sll_8h_af5f6589df6d0ef48ed6f57ac5527ddfe}{
+\index{sll.h@{sll.h}!sll\_\-length@{sll\_\-length}}
+\index{sll\_\-length@{sll\_\-length}!sll.h@{sll.h}}
+\subsubsection[{sll\_\-length}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int sll\_\-length (
\begin{DoxyParamCaption}
\item[{{\bf sll\_\-node} $\ast$}]{list}
\end{DoxyParamCaption}
)}}
-\label{sll_8h_af7327f24d1900d495c1bf914a592b631}
+\label{sll_8h_af5f6589df6d0ef48ed6f57ac5527ddfe}
-Finds and returns the last node in the supplied linked list.
+Returns the number of elements in the list.
+
+Loops through the supplied list and returns a count of the number of elements contained in the list.
\begin{DoxyParams}{Parameters}
-{\em list} & The linked list to search.\\
+{\em list} & The list to be counted.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-Pointer to the last node in the supplied list.
+The number of elements in the list.
+\end{DoxyReturn}
+
+
+Definition at line 134 of file sll.c.
+
+\hypertarget{sll_8h_a471151d11dc385e3364c9a38b19ecba7}{
+\index{sll.h@{sll.h}!sll\_\-new@{sll\_\-new}}
+\index{sll\_\-new@{sll\_\-new}!sll.h@{sll.h}}
+\subsubsection[{sll\_\-new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-new (
+\begin{DoxyParamCaption}
+\item[{void $\ast$}]{contents}
+\end{DoxyParamCaption}
+)}}
+\label{sll_8h_a471151d11dc385e3364c9a38b19ecba7}
+
+
+Creates a new linked list node with the supplied value.
+
+This function allocates a new node on the heap and populates the node contents with the supplied contents pointer.
+
+
+\begin{DoxyParams}{Parameters}
+{\em contents} & The contents of the newly created node.\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+A pointer to the newly created node.
\end{DoxyReturn}
-Definition at line 31 of file sll.c.
+Definition at line 30 of file sll.c.
-Here is the caller graph for this function:
-\nopagebreak
+Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=212pt]{sll_8h_af7327f24d1900d495c1bf914a592b631_icgraph}
+\includegraphics[width=246pt]{sll_8h_a471151d11dc385e3364c9a38b19ecba7_icgraph}
\end{center}
\end{figure}
-\hypertarget{sll_8h_af5f6589df6d0ef48ed6f57ac5527ddfe}{
-\index{sll.h@{sll.h}!sll\_\-length@{sll\_\-length}}
-\index{sll\_\-length@{sll\_\-length}!sll.h@{sll.h}}
-\subsubsection[{sll\_\-length}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int sll\_\-length (
+\hypertarget{sll_8h_af72e93329186ac936d2bf6f544aa1f6b}{
+\index{sll.h@{sll.h}!sll\_\-pop\_\-back@{sll\_\-pop\_\-back}}
+\index{sll\_\-pop\_\-back@{sll\_\-pop\_\-back}!sll.h@{sll.h}}
+\subsubsection[{sll\_\-pop\_\-back}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-pop\_\-back (
\begin{DoxyParamCaption}
\item[{{\bf sll\_\-node} $\ast$}]{list}
\end{DoxyParamCaption}
)}}
-\label{sll_8h_af5f6589df6d0ef48ed6f57ac5527ddfe}
+\label{sll_8h_af72e93329186ac936d2bf6f544aa1f6b}
-Returns the number of elements in the list.
+Removes and returns a pointer to the last element of the list.
+
+
+\begin{DoxyParams}{Parameters}
+{\em list} & \\
+\hline
+{\em contents} & \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+Pointer to the newly added node.
+\end{DoxyReturn}
+
+
+Definition at line 80 of file sll.c.
+
+\hypertarget{sll_8h_a1588e5a1f90852ee48403d5313d64269}{
+\index{sll.h@{sll.h}!sll\_\-pop\_\-front@{sll\_\-pop\_\-front}}
+\index{sll\_\-pop\_\-front@{sll\_\-pop\_\-front}!sll.h@{sll.h}}
+\subsubsection[{sll\_\-pop\_\-front}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-pop\_\-front (
+\begin{DoxyParamCaption}
+\item[{{\bf sll\_\-node} $\ast$}]{list}
+\end{DoxyParamCaption}
+)}}
+\label{sll_8h_a1588e5a1f90852ee48403d5313d64269}
-Loops through the supplied list and returns a count of the number of elements contained in the list.
+
+Removes and returns a pointer to the first element of the list.
\begin{DoxyParams}{Parameters}
-{\em list} & The list to be counted.\\
+{\em list} & \\
+\hline
+{\em contents} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-The number of elements in the list.
+Pointer to the newly added node.
\end{DoxyReturn}
-Definition at line 111 of file sll.c.
+Definition at line 84 of file sll.c.
-\hypertarget{sll_8h_a471151d11dc385e3364c9a38b19ecba7}{
-\index{sll.h@{sll.h}!sll\_\-new@{sll\_\-new}}
-\index{sll\_\-new@{sll\_\-new}!sll.h@{sll.h}}
-\subsubsection[{sll\_\-new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-new (
+\hypertarget{sll_8h_a19ad0a86a87451a3ab68ad6d18c3e3e0}{
+\index{sll.h@{sll.h}!sll\_\-push\_\-back@{sll\_\-push\_\-back}}
+\index{sll\_\-push\_\-back@{sll\_\-push\_\-back}!sll.h@{sll.h}}
+\subsubsection[{sll\_\-push\_\-back}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-push\_\-back (
\begin{DoxyParamCaption}
+\item[{{\bf sll\_\-node} $\ast$}]{list, }
\item[{void $\ast$}]{contents}
\end{DoxyParamCaption}
)}}
-\label{sll_8h_a471151d11dc385e3364c9a38b19ecba7}
+\label{sll_8h_a19ad0a86a87451a3ab68ad6d18c3e3e0}
-Creates a new linked list node with the supplied value.
-
-Allocates a new node on the heap and populates the node contents with the supplied contents pointer.
+Adds a new node to the end of an existing linked list.
\begin{DoxyParams}{Parameters}
-{\em contents} & The contents of the newly created node.\\
+{\em list} & \\
+\hline
+{\em contents} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-A pointer to the newly created node.
+Pointer to the newly added node.
\end{DoxyReturn}
-Definition at line 23 of file sll.c.
+Definition at line 70 of file sll.c.
-Here is the caller graph for this function:
-\nopagebreak
+Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=222pt]{sll_8h_a471151d11dc385e3364c9a38b19ecba7_icgraph}
+\includegraphics[width=250pt]{sll_8h_a19ad0a86a87451a3ab68ad6d18c3e3e0_cgraph}
\end{center}
\end{figure}
+\hypertarget{sll_8h_acfe3ebc296fe75f1d0ee21195dd7b9bf}{
+\index{sll.h@{sll.h}!sll\_\-push\_\-front@{sll\_\-push\_\-front}}
+\index{sll\_\-push\_\-front@{sll\_\-push\_\-front}!sll.h@{sll.h}}
+\subsubsection[{sll\_\-push\_\-front}]{\setlength{\rightskip}{0pt plus 5cm}{\bf sll\_\-node}$\ast$ sll\_\-push\_\-front (
+\begin{DoxyParamCaption}
+\item[{{\bf sll\_\-node} $\ast$}]{list, }
+\item[{void $\ast$}]{contents}
+\end{DoxyParamCaption}
+)}}
+\label{sll_8h_acfe3ebc296fe75f1d0ee21195dd7b9bf}
+
+
+Adds a new node to the front of an existing linked list.
+
+
+\begin{DoxyParams}{Parameters}
+{\em list} & \\
+\hline
+{\em contents} & \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+Pointer to the newly added node.
+\end{DoxyReturn}
+
+
+Definition at line 76 of file sll.c.
+
--- /dev/null
+97869c702dd3b7d1f194fdca6b728d80
\ No newline at end of file
--- /dev/null
+19e92655d2cd2aed2ed1ac777c5a4137
\ No newline at end of file
-fa69abfe1524b408e1013703ef11ab79
\ No newline at end of file
+593f610131b43e39c633453ac1cd8021
\ No newline at end of file
-24bbfb6c09b742de8660687837fb6d72
\ No newline at end of file
+ce51c1faa4690651fe962f50f6718bc2
\ No newline at end of file
--- /dev/null
+ce635f8e203afe654ab1fbbed4de8e33
\ No newline at end of file
-4cd3c941317bf91587f919a442219736
\ No newline at end of file
+4a11eeb37ed04053ce55403269c262c4
\ No newline at end of file
--- /dev/null
+\hypertarget{structbt__node}{
+\section{bt\_\-node Struct Reference}
+\label{structbt__node}\index{bt\_\-node@{bt\_\-node}}
+}
+
+
+A binary tree node.
+
+
+
+
+{\ttfamily \#include $<$bt.h$>$}
+
+
+
+Collaboration diagram for bt\_\-node:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=167pt]{structbt__node__coll__graph}
+\end{center}
+\end{figure}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+void $\ast$ \hyperlink{structbt__node_a9e0d7c8bb9ca7bb4b69bd4af9ca1440c}{contents}
+\begin{DoxyCompactList}\small\item\em The contents of the tree node. \item\end{DoxyCompactList}\item
+struct \hyperlink{structbt__node}{bt\_\-node} $\ast$ \hyperlink{structbt__node_a689e6fb3fde56bc337d5234b0d7f8e80}{left}
+\begin{DoxyCompactList}\small\item\em The left child of the tree node. \item\end{DoxyCompactList}\item
+struct \hyperlink{structbt__node}{bt\_\-node} $\ast$ \hyperlink{structbt__node_aefe84db5b1f24953aba4743200b24898}{right}
+\begin{DoxyCompactList}\small\item\em the right child of the tree node. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+A binary tree node.
+
+Definition at line 34 of file bt.h.
+
+
+
+\subsection{Member Data Documentation}
+\hypertarget{structbt__node_a9e0d7c8bb9ca7bb4b69bd4af9ca1440c}{
+\index{bt\_\-node@{bt\_\-node}!contents@{contents}}
+\index{contents@{contents}!bt_node@{bt\_\-node}}
+\subsubsection[{contents}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ {\bf bt\_\-node::contents}}}
+\label{structbt__node_a9e0d7c8bb9ca7bb4b69bd4af9ca1440c}
+
+
+The contents of the tree node.
+
+
+
+Definition at line 37 of file bt.h.
+
+\hypertarget{structbt__node_a689e6fb3fde56bc337d5234b0d7f8e80}{
+\index{bt\_\-node@{bt\_\-node}!left@{left}}
+\index{left@{left}!bt_node@{bt\_\-node}}
+\subsubsection[{left}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf bt\_\-node}$\ast$ {\bf bt\_\-node::left}}}
+\label{structbt__node_a689e6fb3fde56bc337d5234b0d7f8e80}
+
+
+The left child of the tree node.
+
+
+
+Definition at line 39 of file bt.h.
+
+\hypertarget{structbt__node_aefe84db5b1f24953aba4743200b24898}{
+\index{bt\_\-node@{bt\_\-node}!right@{right}}
+\index{right@{right}!bt_node@{bt\_\-node}}
+\subsubsection[{right}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf bt\_\-node}$\ast$ {\bf bt\_\-node::right}}}
+\label{structbt__node_aefe84db5b1f24953aba4743200b24898}
+
+
+the right child of the tree node.
+
+
+
+Definition at line 41 of file bt.h.
+
+
+
+The documentation for this struct was generated from the following file:\begin{DoxyCompactItemize}
+\item
+src/trees/binary/\hyperlink{bt_8h}{bt.h}\end{DoxyCompactItemize}
--- /dev/null
+f856bfd02666749fdb3c89616eece6d9
\ No newline at end of file
--- /dev/null
+\hypertarget{structbt__tree}{
+\section{bt\_\-tree Struct Reference}
+\label{structbt__tree}\index{bt\_\-tree@{bt\_\-tree}}
+}
+
+
+A binary tree.
+
+
+
+
+{\ttfamily \#include $<$bt.h$>$}
+
+
+
+Collaboration diagram for bt\_\-tree:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=167pt]{structbt__tree__coll__graph}
+\end{center}
+\end{figure}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hyperlink{structbt__node}{bt\_\-node} $\ast$ \hyperlink{structbt__tree_ae428a77981f3b9f27f959b78ed468db7}{root}
+\begin{DoxyCompactList}\small\item\em The root of the binary tree. \item\end{DoxyCompactList}\item
+\hyperlink{bt_8h_a8a7bf1216efb8b05f20a020acd705f75}{bt\_\-compare\_\-func} \hyperlink{structbt__tree_a7ac2a5e50551c1a10b1bf3884cd12af5}{compare}
+\begin{DoxyCompactList}\small\item\em The function used to compare data. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+A binary tree.
+
+Definition at line 45 of file bt.h.
+
+
+
+\subsection{Member Data Documentation}
+\hypertarget{structbt__tree_a7ac2a5e50551c1a10b1bf3884cd12af5}{
+\index{bt\_\-tree@{bt\_\-tree}!compare@{compare}}
+\index{compare@{compare}!bt_tree@{bt\_\-tree}}
+\subsubsection[{compare}]{\setlength{\rightskip}{0pt plus 5cm}{\bf bt\_\-compare\_\-func} {\bf bt\_\-tree::compare}}}
+\label{structbt__tree_a7ac2a5e50551c1a10b1bf3884cd12af5}
+
+
+The function used to compare data.
+
+
+
+Definition at line 50 of file bt.h.
+
+\hypertarget{structbt__tree_ae428a77981f3b9f27f959b78ed468db7}{
+\index{bt\_\-tree@{bt\_\-tree}!root@{root}}
+\index{root@{root}!bt_tree@{bt\_\-tree}}
+\subsubsection[{root}]{\setlength{\rightskip}{0pt plus 5cm}{\bf bt\_\-node}$\ast$ {\bf bt\_\-tree::root}}}
+\label{structbt__tree_ae428a77981f3b9f27f959b78ed468db7}
+
+
+The root of the binary tree.
+
+
+
+Definition at line 48 of file bt.h.
+
+
+
+The documentation for this struct was generated from the following file:\begin{DoxyCompactItemize}
+\item
+src/trees/binary/\hyperlink{bt_8h}{bt.h}\end{DoxyCompactItemize}
--- /dev/null
+92a8ab8fa9e52963611ba11b39ae0108
\ No newline at end of file
--- /dev/null
+\hypertarget{structht__node}{
+\section{ht\_\-node Struct Reference}
+\label{structht__node}\index{ht\_\-node@{ht\_\-node}}
+}
+
+
+A node in a hash table.
+
+
+
+
+{\ttfamily \#include $<$ht.h$>$}
+
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+void $\ast$ \hyperlink{structht__node_a7ae2a850d1c6e0abb86b3d901fb5d16b}{key}
+\begin{DoxyCompactList}\small\item\em Pointer to the key. \item\end{DoxyCompactList}\item
+void $\ast$ \hyperlink{structht__node_a0e050852d00670316f005463a7d749f8}{val}
+\begin{DoxyCompactList}\small\item\em Pointer to the value. \item\end{DoxyCompactList}\item
+struct node $\ast$ \hyperlink{structht__node_ae1c5c426c9f752a40b5db427b506060e}{next}
+\begin{DoxyCompactList}\small\item\em Pointer to the next node in the collision chain. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+A node in a hash table.
+
+Definition at line 34 of file ht.h.
+
+
+
+\subsection{Member Data Documentation}
+\hypertarget{structht__node_a7ae2a850d1c6e0abb86b3d901fb5d16b}{
+\index{ht\_\-node@{ht\_\-node}!key@{key}}
+\index{key@{key}!ht_node@{ht\_\-node}}
+\subsubsection[{key}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ {\bf ht\_\-node::key}}}
+\label{structht__node_a7ae2a850d1c6e0abb86b3d901fb5d16b}
+
+
+Pointer to the key.
+
+
+
+Definition at line 37 of file ht.h.
+
+\hypertarget{structht__node_ae1c5c426c9f752a40b5db427b506060e}{
+\index{ht\_\-node@{ht\_\-node}!next@{next}}
+\index{next@{next}!ht_node@{ht\_\-node}}
+\subsubsection[{next}]{\setlength{\rightskip}{0pt plus 5cm}struct node$\ast$ {\bf ht\_\-node::next}}}
+\label{structht__node_ae1c5c426c9f752a40b5db427b506060e}
+
+
+Pointer to the next node in the collision chain.
+
+
+
+Definition at line 41 of file ht.h.
+
+\hypertarget{structht__node_a0e050852d00670316f005463a7d749f8}{
+\index{ht\_\-node@{ht\_\-node}!val@{val}}
+\index{val@{val}!ht_node@{ht\_\-node}}
+\subsubsection[{val}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ {\bf ht\_\-node::val}}}
+\label{structht__node_a0e050852d00670316f005463a7d749f8}
+
+
+Pointer to the value.
+
+
+
+Definition at line 39 of file ht.h.
+
+
+
+The documentation for this struct was generated from the following file:\begin{DoxyCompactItemize}
+\item
+src/ht/\hyperlink{ht_8h}{ht.h}\end{DoxyCompactItemize}
\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[width=161pt]{structht__table__coll__graph}
+\includegraphics[width=130pt]{structht__table__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Attributes}
\item
unsigned int \hyperlink{structht__table_a493b0baf20b4274a08b5451e61f8e5f4}{size}
\begin{DoxyCompactList}\small\item\em Size of the internal table. \item\end{DoxyCompactList}\item
-\hyperlink{structnode}{ht\_\-node} $\ast$$\ast$ \hyperlink{structht__table_ae739f6f0d8b6cd6f55337ae7d0761dfc}{table}
+\hyperlink{structht__node}{ht\_\-node} $\ast$$\ast$ \hyperlink{structht__table_ae739f6f0d8b6cd6f55337ae7d0761dfc}{table}
\begin{DoxyCompactList}\small\item\em Pointer to the internal hashing table. \item\end{DoxyCompactList}\item
\hyperlink{ht_8h_a91a8d03489ef281e6f26d389c44d42cf}{ht\_\-hash\_\-func} \hyperlink{structht__table_abe53fe8d261dea812255944769d22f45}{hash\_\-func}
\begin{DoxyCompactList}\small\item\em Function used for hashing elements. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Detailed Description}
A hash table.
-Definition at line 35 of file ht.h.
+Definition at line 45 of file ht.h.
-Definition at line 42 of file ht.h.
+Definition at line 52 of file ht.h.
\hypertarget{structht__table_a493b0baf20b4274a08b5451e61f8e5f4}{
\index{ht\_\-table@{ht\_\-table}!size@{size}}
-Definition at line 38 of file ht.h.
+Definition at line 48 of file ht.h.
\hypertarget{structht__table_ae739f6f0d8b6cd6f55337ae7d0761dfc}{
\index{ht\_\-table@{ht\_\-table}!table@{table}}
-Definition at line 40 of file ht.h.
+Definition at line 50 of file ht.h.
-869d2d9ff0499d50d91209afdb1146e1
\ No newline at end of file
+c099f525bafd0cf5b8d3a0f2c07b8269
\ No newline at end of file
-Collaboration diagram for node:
-\nopagebreak
+Collaboration diagram for node:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
void $\ast$ \hyperlink{structnode_a72c8a0c41b801c92db89c5078642f28b}{key}
\begin{DoxyCompactList}\small\item\em Pointer to the key. \item\end{DoxyCompactList}\item
void $\ast$ \hyperlink{structnode_a3866f55c05d50265b730d8cdeec0a1f8}{val}
-\begin{DoxyCompactList}\small\item\em Pointer to tke value. \item\end{DoxyCompactList}\item
-struct \hyperlink{structnode}{node} $\ast$ \hyperlink{structnode_a111a569ab2765add9b91c9f94cf9f063}{next}
-\begin{DoxyCompactList}\small\item\em Pointer to the next node in the collision chain. \item\end{DoxyCompactList}\item
-void $\ast$ \hyperlink{structnode_a6658978058886a89ccc39f1d1a56e6d1}{contents}
-\end{DoxyCompactItemize}
+\begin{DoxyCompactList}\small\item\em Pointer to the value. \item\end{DoxyCompactList}\item
+struct \hyperlink{structnode}{node} $\ast$ \hyperlink{structnode_aa3e8aa83f864292b5a01210f4453fcc0}{next}
+\begin{DoxyCompactList}\small\item\em Pointer to the next node in the collision chain. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Detailed Description}
A node in a hash table.
-Definition at line 24 of file ht.h.
+Definition at line 34 of file ht.h.
\subsection{Member Data Documentation}
-\hypertarget{structnode_a6658978058886a89ccc39f1d1a56e6d1}{
-\index{node@{node}!contents@{contents}}
-\index{contents@{contents}!node@{node}}
-\subsubsection[{contents}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ {\bf node::contents}}}
-\label{structnode_a6658978058886a89ccc39f1d1a56e6d1}
-
-
-Definition at line 22 of file sll.h.
-
\hypertarget{structnode_a72c8a0c41b801c92db89c5078642f28b}{
\index{node@{node}!key@{key}}
\index{key@{key}!node@{node}}
-Definition at line 27 of file ht.h.
+Definition at line 37 of file ht.h.
-\hypertarget{structnode_a111a569ab2765add9b91c9f94cf9f063}{
+\hypertarget{structnode_aa3e8aa83f864292b5a01210f4453fcc0}{
\index{node@{node}!next@{next}}
\index{next@{next}!node@{node}}
-\subsubsection[{next}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf node} $\ast$ {\bf node::next}}}
-\label{structnode_a111a569ab2765add9b91c9f94cf9f063}
+\subsubsection[{next}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf node}$\ast$ {\bf node::next}}}
+\label{structnode_aa3e8aa83f864292b5a01210f4453fcc0}
Pointer to the next node in the collision chain.
-Definition at line 31 of file ht.h.
+Definition at line 41 of file ht.h.
\hypertarget{structnode_a3866f55c05d50265b730d8cdeec0a1f8}{
\index{node@{node}!val@{val}}
\label{structnode_a3866f55c05d50265b730d8cdeec0a1f8}
-Pointer to tke value.
+Pointer to the value.
-Definition at line 29 of file ht.h.
+Definition at line 39 of file ht.h.
-The documentation for this struct was generated from the following files:\begin{DoxyCompactItemize}
+The documentation for this struct was generated from the following file:\begin{DoxyCompactItemize}
\item
-src/ht/\hyperlink{ht_8h}{ht.h}\item
-src/lists/single\_\-link/\hyperlink{sll_8h}{sll.h}\end{DoxyCompactItemize}
+src/ht/\hyperlink{ht_8h}{ht.h}\end{DoxyCompactItemize}
--- /dev/null
+\hypertarget{structsll__node}{
+\section{sll\_\-node Struct Reference}
+\label{structsll__node}\index{sll\_\-node@{sll\_\-node}}
+}
+
+
+A linked list node.
+
+
+
+
+{\ttfamily \#include $<$sll.h$>$}
+
+
+
+Collaboration diagram for sll\_\-node:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=169pt]{structsll__node__coll__graph}
+\end{center}
+\end{figure}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+void $\ast$ \hyperlink{structsll__node_aafacbed96ba149b0b8c705426196154c}{contents}
+\begin{DoxyCompactList}\small\item\em Pointer to the contents the node. \item\end{DoxyCompactList}\item
+struct \hyperlink{structsll__node}{sll\_\-node} $\ast$ \hyperlink{structsll__node_aa2e4c5d743ad44e759b5ca13f9915826}{next}
+\begin{DoxyCompactList}\small\item\em Pointer to next node in the list. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+A linked list node.
+
+Definition at line 31 of file sll.h.
+
+
+
+\subsection{Member Data Documentation}
+\hypertarget{structsll__node_aafacbed96ba149b0b8c705426196154c}{
+\index{sll\_\-node@{sll\_\-node}!contents@{contents}}
+\index{contents@{contents}!sll_node@{sll\_\-node}}
+\subsubsection[{contents}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ {\bf sll\_\-node::contents}}}
+\label{structsll__node_aafacbed96ba149b0b8c705426196154c}
+
+
+Pointer to the contents the node.
+
+
+
+Definition at line 34 of file sll.h.
+
+\hypertarget{structsll__node_aa2e4c5d743ad44e759b5ca13f9915826}{
+\index{sll\_\-node@{sll\_\-node}!next@{next}}
+\index{next@{next}!sll_node@{sll\_\-node}}
+\subsubsection[{next}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf sll\_\-node}$\ast$ {\bf sll\_\-node::next}}}
+\label{structsll__node_aa2e4c5d743ad44e759b5ca13f9915826}
+
+
+Pointer to next node in the list.
+
+
+
+Definition at line 36 of file sll.h.
+
+
+
+The documentation for this struct was generated from the following file:\begin{DoxyCompactItemize}
+\item
+src/lists/single\_\-link/\hyperlink{sll_8h}{sll.h}\end{DoxyCompactItemize}
--- /dev/null
+da110d52695e8fef0d9b15f8212329e0
\ No newline at end of file