]> git.mdlowis.com Git - projs/libcds.git/commitdiff
Updated doxygen documentation
authorMike D. Lowis <mike@mdlowis.com>
Fri, 23 Mar 2012 16:45:51 +0000 (12:45 -0400)
committerMike D. Lowis <mike@mdlowis.com>
Fri, 23 Mar 2012 16:45:51 +0000 (12:45 -0400)
70 files changed:
docs/doxygen/html/annotated.html
docs/doxygen/html/avl_8c.html
docs/doxygen/html/avl_8c_source.html
docs/doxygen/html/avl_8h.html
docs/doxygen/html/avl_8h_source.html
docs/doxygen/html/bt_8c.html
docs/doxygen/html/bt_8c_source.html
docs/doxygen/html/bt_8h.html
docs/doxygen/html/bt_8h_source.html
docs/doxygen/html/classes.html
docs/doxygen/html/dll_8c.html
docs/doxygen/html/dll_8c_source.html
docs/doxygen/html/dll_8h.html
docs/doxygen/html/dll_8h_source.html
docs/doxygen/html/files.html
docs/doxygen/html/functions.html
docs/doxygen/html/functions_vars.html
docs/doxygen/html/globals.html
docs/doxygen/html/globals_func.html
docs/doxygen/html/globals_type.html
docs/doxygen/html/graph_legend.html
docs/doxygen/html/ht_8c.html
docs/doxygen/html/ht_8c_a278174a0154a10b8b10b23937ca4c721_icgraph.map
docs/doxygen/html/ht_8c_a278174a0154a10b8b10b23937ca4c721_icgraph.md5
docs/doxygen/html/ht_8c_a278174a0154a10b8b10b23937ca4c721_icgraph.png
docs/doxygen/html/ht_8c_source.html
docs/doxygen/html/ht_8h.html
docs/doxygen/html/ht_8h_a278174a0154a10b8b10b23937ca4c721_icgraph.map
docs/doxygen/html/ht_8h_a278174a0154a10b8b10b23937ca4c721_icgraph.md5
docs/doxygen/html/ht_8h_a278174a0154a10b8b10b23937ca4c721_icgraph.png
docs/doxygen/html/ht_8h_source.html
docs/doxygen/html/index.html
docs/doxygen/html/rbt_8c.html
docs/doxygen/html/rbt_8c_source.html
docs/doxygen/html/rbt_8h.html
docs/doxygen/html/rbt_8h_source.html
docs/doxygen/html/search/all_68.html
docs/doxygen/html/search/all_73.html
docs/doxygen/html/search/functions_68.html
docs/doxygen/html/search/functions_73.html
docs/doxygen/html/sll_8c.html
docs/doxygen/html/sll_8c_source.html
docs/doxygen/html/sll_8h.html
docs/doxygen/html/sll_8h_source.html
docs/doxygen/html/structbt__node-members.html
docs/doxygen/html/structbt__node.html
docs/doxygen/html/structbt__tree-members.html
docs/doxygen/html/structbt__tree.html
docs/doxygen/html/structht__node-members.html
docs/doxygen/html/structht__node.html
docs/doxygen/html/structht__table-members.html
docs/doxygen/html/structht__table.html
docs/doxygen/html/structsll__node-members.html
docs/doxygen/html/structsll__node.html
docs/doxygen/latex/doxygen.sty
docs/doxygen/latex/ht_8c.tex
docs/doxygen/latex/ht_8c_a278174a0154a10b8b10b23937ca4c721_icgraph.md5
docs/doxygen/latex/ht_8h.tex
docs/doxygen/latex/ht_8h_a278174a0154a10b8b10b23937ca4c721_icgraph.md5
docs/doxygen/latex/refman.tex
docs/doxygen/latex/sll_8c.tex
docs/doxygen/latex/sll_8h.tex
docs/doxygen/latex/structht__table.tex
src/ht/ht.c
src/ht/ht.h
src/lists/single_link/sll.c
src/lists/single_link/sll.h
src/trees/binary/bt.c
src/trees/binary/bt.h
tests/trees/binary/test_bt.c [new file with mode: 0644]

index 68515bd315642a1313e54eaa6d0dac5333501dcf..7aa64b5497ef3e167a30335ddcef78805eb11d5d 100644 (file)
@@ -93,7 +93,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index e9bd0c721fe9edf7179b069e7a1bbe47ad2ef1e3..9403f2cd5dabd93221b7db8fac3c26d75bad113e 100644 (file)
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 84e40e1da2d26811f890de5c8326aa0d0e1ccd09..f8e5c2b97eb36bbfa02a34e8b40194690dd78a7c 100644 (file)
@@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 5a7ce8145828c04f60a05817107f3ced549ccbb2..e55f45cfabed62443564b3b10e05eb2ea106c82b 100644 (file)
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 8d266c6c3ee444b91b7a76e97fb87374fbbdd102..a38c2f0d61b37e72495c23d8bd72d5017b548a70 100644 (file)
@@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 02213a5490bb1897377b07ee3841d7a22ae9752f..31cf3b60f0aa6752d18d7dbd32f76e78f57a9e81 100644 (file)
@@ -330,7 +330,7 @@ Functions</h2></td></tr>
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index bcfb809174a78d7e696a0d0d2a0c6b63d692ed88..979994afe52d4ad0951ca6ff893556082863d5f2 100644 (file)
@@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index d610afb37d754914d8039e68a8da92394907cd24..e45315ea011fa24a4c1b2b618d204bc26aa447b0 100644 (file)
@@ -409,7 +409,7 @@ Functions</h2></td></tr>
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 6e2731e9c36c4859d47a2117c742acaed2853d66..07aaa4821609e223c5dd2c8b5f4c8a8cd1e8c8b9 100644 (file)
@@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index db1741b74446453d2d92669b61a154edd8c90005..c5627cd6867e78bf5c444a6e0eb92ab893bba662 100644 (file)
@@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index fc17b8f432a1d96579e59edb6e90bc4854c32485..92c8c940a8e2990f4cc08f37eca7b15dc24fcad9 100644 (file)
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 8a30adf6ead61a8172a8a6521aa92c6f4bb23df3..d0cfb7fba1b7eeb0328fa178ad3d9e3e0213da64 100644 (file)
@@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:03 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index c43f5fab7e37085f07035cdb646731a6624cb208..3aa837f973ca4bc7649fca8648d3a631252200b7 100644 (file)
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index bffbfeeea1a2a7ac10dc473b970284794e04ecb5..e2a7c1172c833e0ffeb34bc2315c297a74b81efd 100644 (file)
@@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:03 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 8424042a58ffc2d4d5408e5bc4c0797af801ffd9..4d45af958cd52cfcc9a5c05468a8784b9c59b8fb 100644 (file)
@@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:05 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 45fd20f5ded6ded72cb1731bcef4518f102d6492..939727bc0b05624b69bddfcf8aa481acc43f37a3 100644 (file)
@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index c8faa65cb9146a48c1ab2c7756bcdbeffa2112f6..0c5e9ff258bafd489c0266540fbe60223d1d3f69 100644 (file)
@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 392fe15cbe9b1b4e70eefaf52a4fc4fe42eb46da..9d1737fa7e6e6438d0cf66a65a0af41a2849dd4a 100644 (file)
@@ -135,13 +135,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <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_find()
+: <a class="el" href="ht_8h.html#a50855610a2e434aeec5180aa596d44a1">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#a96de71bf3880ed0a879f60b6e5254803">ht.c</a>
+: <a class="el" href="ht_8c.html#a96de71bf3880ed0a879f60b6e5254803">ht.c</a>
+, <a class="el" href="ht_8h.html#a96de71bf3880ed0a879f60b6e5254803">ht.h</a>
 </li>
 <li>ht_get()
 : <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#a91a8d03489ef281e6f26d389c44d42cf">ht.h</a>
@@ -150,6 +152,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="ht_8c.html#a278174a0154a10b8b10b23937ca4c721">ht.c</a>
 , <a class="el" href="ht_8h.html#a278174a0154a10b8b10b23937ca4c721">ht.h</a>
 </li>
+<li>ht_insert()
+: <a class="el" href="ht_8h.html#acb11ccfcef6f11d5e9ec31f14b875140">ht.h</a>
+</li>
 <li>ht_new()
 : <a class="el" href="ht_8c.html#a0a3e03a29413673acd8899d250cd0844">ht.c</a>
 , <a class="el" href="ht_8h.html#a0a3e03a29413673acd8899d250cd0844">ht.h</a>
@@ -159,11 +164,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </li>
 <li>ht_put()
 : <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#ad9cac6da8b459d5960079b0d95489960">ht.c</a>
+: <a class="el" href="ht_8c.html#ad9cac6da8b459d5960079b0d95489960">ht.c</a>
+, <a class="el" href="ht_8h.html#ad9cac6da8b459d5960079b0d95489960">ht.h</a>
 </li>
 </ul>
 
@@ -206,11 +210,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </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>
+, <a class="el" href="sll_8h.html#a58add98a437335c8f927344215a40d11">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>
+, <a class="el" href="sll_8h.html#a6702f6f18b540bd21165295eb3ca5c25">sll.h</a>
 </li>
 <li>sll_push_back()
 : <a class="el" href="sll_8h.html#a19ad0a86a87451a3ab68ad6d18c3e3e0">sll.h</a>
@@ -225,7 +229,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:05 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 2fb27bcbd1fe30e8aabaca6a387fce1aa6db8f6a..0956072a316210cbe5f5391de7afb2454946a440 100644 (file)
@@ -126,29 +126,33 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <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_find()
+: <a class="el" href="ht_8h.html#a50855610a2e434aeec5180aa596d44a1">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#a96de71bf3880ed0a879f60b6e5254803">ht.c</a>
+: <a class="el" href="ht_8c.html#a96de71bf3880ed0a879f60b6e5254803">ht.c</a>
+, <a class="el" href="ht_8h.html#a96de71bf3880ed0a879f60b6e5254803">ht.h</a>
 </li>
 <li>ht_get()
 : <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#a278174a0154a10b8b10b23937ca4c721">ht.h</a>
 , <a class="el" href="ht_8c.html#a278174a0154a10b8b10b23937ca4c721">ht.c</a>
 </li>
+<li>ht_insert()
+: <a class="el" href="ht_8h.html#acb11ccfcef6f11d5e9ec31f14b875140">ht.h</a>
+</li>
 <li>ht_new()
-: <a class="el" href="ht_8c.html#a0a3e03a29413673acd8899d250cd0844">ht.c</a>
-, <a class="el" href="ht_8h.html#a0a3e03a29413673acd8899d250cd0844">ht.h</a>
+: <a class="el" href="ht_8h.html#a0a3e03a29413673acd8899d250cd0844">ht.h</a>
+, <a class="el" href="ht_8c.html#a0a3e03a29413673acd8899d250cd0844">ht.c</a>
 </li>
 <li>ht_put()
 : <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#ad9cac6da8b459d5960079b0d95489960">ht.c</a>
+: <a class="el" href="ht_8c.html#ad9cac6da8b459d5960079b0d95489960">ht.c</a>
+, <a class="el" href="ht_8h.html#ad9cac6da8b459d5960079b0d95489960">ht.h</a>
 </li>
 </ul>
 
@@ -188,11 +192,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </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>
+, <a class="el" href="sll_8h.html#a58add98a437335c8f927344215a40d11">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>
+, <a class="el" href="sll_8h.html#a6702f6f18b540bd21165295eb3ca5c25">sll.h</a>
 </li>
 <li>sll_push_back()
 : <a class="el" href="sll_8c.html#a19ad0a86a87451a3ab68ad6d18c3e3e0">sll.c</a>
@@ -207,7 +211,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:05 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 9dcaaceb6fd3d6c4db2b450f6636574fc3ba3f82..8f43b6e54b8c9d170a0901d496c42e6f61890ca7 100644 (file)
@@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:05 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 9d76d8d3b011993504eaf0e47072eea4d633addc..31f19c992c49916cbf6ecaaa6c9a4f6551cdf74b 100644 (file)
@@ -143,7 +143,7 @@ A yellow dashed arrow denotes a relation between a template instance and the tem
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:05 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 5ea0a51460bd1a8a0c2cfeafeba8b6259ef56ac1..1fefc956ce095290aea6410c23c3f992ca536717 100644 (file)
@@ -102,13 +102,11 @@ Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8c.html#a278174a0154a10b8b10b23937ca4c721">ht_hash_string</a> (void *key)</td></tr>
 <tr><td class="mdescLeft">&#160;</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> *&#160;</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">&#160;</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="mdescLeft">&#160;</td><td class="mdescRight">Creates a new hash table.  <a href="#a0a3e03a29413673acd8899d250cd0844"></a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</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">&#160;</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&#160;</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">&#160;</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 *&#160;</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">&#160;</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&#160;</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">&#160;</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> *&#160;</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>
@@ -153,6 +151,7 @@ Functions</h2></td></tr>
 <div class="memdoc">
 
 <p>Deletes a key/value pair from the provided hash table. </p>
+<p>This function looks up an entry in the table by hashing the key with the table's hash function. If an entry is found then the memory allocated for the entry is freed. If free_key or free_value are non-zero values then the key or value pointers are freed respectively.</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>
@@ -199,6 +198,7 @@ Functions</h2></td></tr>
 <div class="memdoc">
 
 <p>Frees all memory used by the provided hash table. </p>
+<p>This function frees all memory allocated for the given table. If free_key or free_value are non-zero values then the key or value pointers are freed respectively.</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>
@@ -237,16 +237,6 @@ Functions</h2></td></tr>
 </div>
 <div class="memdoc">
 
-<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>
@@ -267,6 +257,7 @@ Functions</h2></td></tr>
 <div class="memdoc">
 
 <p>Takes a string key value and returns it's hashed value. </p>
+<p>This function takes a pointer to a string and returns a hash value based on the contents of the string.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
     <tr><td class="paramname">key</td><td>Pointer to the string to hash.</td></tr>
@@ -282,7 +273,7 @@ Here is the caller graph for this function:</div>
 <div class="dyncontent">
 <div class="center"><img src="ht_8c_a278174a0154a10b8b10b23937ca4c721_icgraph.png" border="0" usemap="#ht_8c_a278174a0154a10b8b10b23937ca4c721_icgraph" alt=""/></div>
 <map name="ht_8c_a278174a0154a10b8b10b23937ca4c721_icgraph" id="ht_8c_a278174a0154a10b8b10b23937ca4c721_icgraph">
-<area shape="rect" id="node3" href="ht_8h.html#a0a3e03a29413673acd8899d250cd0844" title="Creates a new hash table of the given size using the provided hash function or the built&#45;in string ha..." alt="" coords="161,5,223,35"/>\r</map>
+<area shape="rect" id="node3" href="ht_8h.html#a0a3e03a29413673acd8899d250cd0844" title="Creates a new hash table." alt="" coords="161,5,223,35"/>\r</map>
 </div>
 </p>
 
@@ -313,7 +304,8 @@ Here is the caller graph for this function:</div>
 </div>
 <div class="memdoc">
 
-<p>Creates a new hash table of the given size using the provided hash function or the built-in string hashing function otherwise. </p>
+<p>Creates a new hash table. </p>
+<p>This fucntion creates a new empty hash table with an internal lookup table of the given size and the desired hash function. The hash function will be used for insertion, deletion, and lookup of elements within the table. If the hash function pointer is null then ht_hash_string is used.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
     <tr><td class="paramname">size</td><td>The size of the table to use for storing data. </td></tr>
@@ -367,16 +359,6 @@ Here is the call graph for this function:</div>
 </div>
 <div class="memdoc">
 
-<p>Inserts a key/value pair into the provided 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">key</td><td>The key for the associated value. </td></tr>
-    <tr><td class="paramname">val</td><td>The value to be associated with the key. </td></tr>
-  </table>
-  </dd>
-</dl>
-
 <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>
@@ -407,6 +389,7 @@ Here is the call graph for this function:</div>
 <div class="memdoc">
 
 <p>Resizes the underlying table used for storing key/value pairs. </p>
+<p>This function allocates a new internal lookup table of the given size to replace the internal table for the provided hash table. After the new talbe is created, all entries from the old table are rehahsed and inserted into the new lookup table. The new lookup table then replaces the old lookup table and the old lookup table is freed.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
     <tr><td class="paramname">table</td><td>The table to be resized. </td></tr>
@@ -425,7 +408,7 @@ Here is the call graph for this function:</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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index fca44ed99adb0020bb0a39b0dcbc016669397d5f..558618d805feb9e2b4fc08944eb77388a28691e4 100644 (file)
@@ -1,3 +1,3 @@
 <map id="G" name="G">
-<area shape="rect" id="node3" href="$ht_8h.html#a0a3e03a29413673acd8899d250cd0844" title="Creates a new hash table of the given size using the provided hash function or the built&#45;in string ha..." alt="" coords="161,5,223,35"/>
+<area shape="rect" id="node3" href="$ht_8h.html#a0a3e03a29413673acd8899d250cd0844" title="Creates a new hash table." alt="" coords="161,5,223,35"/>
 </map>
index df52005df8cfc4ff3316c6750e6ab1891ad16625..0ce7356d5d15aaafab9ceb5c96aa091cecab7eb3 100644 (file)
@@ -1 +1 @@
-c6c1dd045d4a706b458e14b275afbca8
\ No newline at end of file
+a664916197e72d71cb6ce0dfa272dc10
\ No newline at end of file
index 83e5f3b92e9137f7ba594c04283f48259992fa86..ea72202bbe4331190a1b1e224263356294f3803f 100644 (file)
Binary files a/docs/doxygen/html/ht_8c_a278174a0154a10b8b10b23937ca4c721_icgraph.png and b/docs/doxygen/html/ht_8c_a278174a0154a10b8b10b23937ca4c721_icgraph.png differ
index d1a026487573ed139d24c34e51e27712656a4d6b..1c9f5fec510688bf57f3afd8096fe0381ef98cc3 100644 (file)
@@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <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="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.">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>) );
@@ -153,7 +153,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <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="l00073"></a><a class="code" href="ht_8c.html#a8c17c7288d2f510dd5c091cccc6dd056">00073</a> <span class="keywordtype">void</span> <a class="code" href="ht_8c.html#a8c17c7288d2f510dd5c091cccc6dd056">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-&gt;<a class="code" href="structht__table.html#abe53fe8d261dea812255944769d22f45" title="Function used for hashing elements.">hash_func</a>( key ) % table-&gt;<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-&gt;<a class="code" href="structht__table.html#ae739f6f0d8b6cd6f55337ae7d0761dfc" title="Pointer to the internal hashing table.">table</a>[index];
@@ -188,7 +188,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <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="l00108"></a><a class="code" href="ht_8c.html#a5bc0ba0d31b944797e17a96372bce33e">00108</a> <span class="keywordtype">void</span>* <a class="code" href="ht_8c.html#a5bc0ba0d31b944797e17a96372bce33e">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-&gt;<a class="code" href="structht__table.html#abe53fe8d261dea812255944769d22f45" title="Function used for hashing elements.">hash_func</a>( key ) % table-&gt;<a class="code" href="structht__table.html#a493b0baf20b4274a08b5451e61f8e5f4" title="Size of the internal table.">size</a>;
@@ -220,7 +220,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:03 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index bf00903d049dd1919c5403dde1807ef36b8d81ce..16c3323febcb0b79db697bc357785f92826fce49 100644 (file)
@@ -112,13 +112,13 @@ Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.html#a278174a0154a10b8b10b23937ca4c721">ht_hash_string</a> (void *key)</td></tr>
 <tr><td class="mdescLeft">&#160;</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> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.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">&#160;</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="mdescLeft">&#160;</td><td class="mdescRight">Creates a new hash table.  <a href="#a0a3e03a29413673acd8899d250cd0844"></a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.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">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.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">&#160;</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 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.html#a5bc0ba0d31b944797e17a96372bce33e">ht_get</a> (<a class="el" href="structht__table.html">ht_table</a> *table, void *key)</td></tr>
-<tr><td class="mdescLeft">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.html#acb11ccfcef6f11d5e9ec31f14b875140">ht_insert</a> (<a class="el" href="structht__table.html">ht_table</a> *table, void *key, void *val)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a key/value pair into the provided table.  <a href="#acb11ccfcef6f11d5e9ec31f14b875140"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.html#a50855610a2e434aeec5180aa596d44a1">ht_find</a> (<a class="el" href="structht__table.html">ht_table</a> *table, void *key)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves a value from the provided table.  <a href="#a50855610a2e434aeec5180aa596d44a1"></a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.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">&#160;</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> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ht_8h.html#ad9cac6da8b459d5960079b0d95489960">ht_resize</a> (<a class="el" href="structht__table.html">ht_table</a> *table, unsigned int size)</td></tr>
@@ -196,6 +196,7 @@ Functions</h2></td></tr>
 <div class="memdoc">
 
 <p>Deletes a key/value pair from the provided hash table. </p>
+<p>This function looks up an entry in the table by hashing the key with the table's hash function. If an entry is found then the memory allocated for the entry is freed. If free_key or free_value are non-zero values then the key or value pointers are freed respectively.</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>
@@ -210,12 +211,12 @@ Functions</h2></td></tr>
 
 </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)" -->
+<a class="anchor" id="a50855610a2e434aeec5180aa596d44a1"></a><!-- doxytag: member="ht.h::ht_find" ref="a50855610a2e434aeec5180aa596d44a1" args="(ht_table *table, void *key)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void ht_free </td>
+          <td class="memname">void* ht_find </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structht__table.html">ht_table</a> *&#160;</td>
           <td class="paramname"><em>table</em>, </td>
@@ -223,14 +224,8 @@ Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">int&#160;</td>
-          <td class="paramname"><em>free_key</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&#160;</td>
-          <td class="paramname"><em>free_value</em>&#160;</td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>key</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -241,26 +236,25 @@ Functions</h2></td></tr>
 </div>
 <div class="memdoc">
 
-<p>Frees all memory used by the provided hash table. </p>
+<p>Retrieves a value from the provided table. </p>
+<p>This function looks up an entry in the table by hashing the key with the table's hash function. It then returns the pointer to the value of the found entry or a null pointer if no entry was found.</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>
+    <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>
-
-<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>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the value associated with the provided key. </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="a5bc0ba0d31b944797e17a96372bce33e"></a><!-- doxytag: member="ht.h::ht_get" ref="a5bc0ba0d31b944797e17a96372bce33e" args="(ht_table *table, void *key)" -->
+<a class="anchor" id="a96de71bf3880ed0a879f60b6e5254803"></a><!-- doxytag: member="ht.h::ht_free" ref="a96de71bf3880ed0a879f60b6e5254803" args="(ht_table *table, int free_key, int free_value)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void* ht_get </td>
+          <td class="memname">void ht_free </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structht__table.html">ht_table</a> *&#160;</td>
           <td class="paramname"><em>table</em>, </td>
@@ -268,8 +262,14 @@ Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>key</em>&#160;</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>free_key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>free_value</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -280,17 +280,18 @@ Functions</h2></td></tr>
 </div>
 <div class="memdoc">
 
-<p>Retrieves a value from the provided table. </p>
+<p>Frees all memory used by the provided hash table. </p>
+<p>This function frees all memory allocated for the given table. If free_key or free_value are non-zero values then the key or value pointers are freed respectively.</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>
+    <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>
-<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>
+<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>
@@ -310,6 +311,7 @@ Functions</h2></td></tr>
 <div class="memdoc">
 
 <p>Takes a string key value and returns it's hashed value. </p>
+<p>This function takes a pointer to a string and returns a hash value based on the contents of the string.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
     <tr><td class="paramname">key</td><td>Pointer to the string to hash.</td></tr>
@@ -325,27 +327,33 @@ Here is the caller graph for this function:</div>
 <div class="dyncontent">
 <div class="center"><img src="ht_8h_a278174a0154a10b8b10b23937ca4c721_icgraph.png" border="0" usemap="#ht_8h_a278174a0154a10b8b10b23937ca4c721_icgraph" alt=""/></div>
 <map name="ht_8h_a278174a0154a10b8b10b23937ca4c721_icgraph" id="ht_8h_a278174a0154a10b8b10b23937ca4c721_icgraph">
-<area shape="rect" id="node3" href="ht_8h.html#a0a3e03a29413673acd8899d250cd0844" title="Creates a new hash table of the given size using the provided hash function or the built&#45;in string ha..." alt="" coords="161,5,223,35"/>\r</map>
+<area shape="rect" id="node3" href="ht_8h.html#a0a3e03a29413673acd8899d250cd0844" title="Creates a new hash table." alt="" coords="161,5,223,35"/>\r</map>
 </div>
 </p>
 
 </div>
 </div>
-<a class="anchor" id="a0a3e03a29413673acd8899d250cd0844"></a><!-- doxytag: member="ht.h::ht_new" ref="a0a3e03a29413673acd8899d250cd0844" args="(unsigned int size, ht_hash_func fn)" -->
+<a class="anchor" id="acb11ccfcef6f11d5e9ec31f14b875140"></a><!-- doxytag: member="ht.h::ht_insert" ref="acb11ccfcef6f11d5e9ec31f14b875140" args="(ht_table *table, void *key, void *val)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structht__table.html">ht_table</a>* ht_new </td>
+          <td class="memname">void ht_insert </td>
           <td>(</td>
-          <td class="paramtype">unsigned int&#160;</td>
-          <td class="paramname"><em>size</em>, </td>
+          <td class="paramtype"><a class="el" href="structht__table.html">ht_table</a> *&#160;</td>
+          <td class="paramname"><em>table</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf">ht_hash_func</a>&#160;</td>
-          <td class="paramname"><em>fn</em>&#160;</td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>val</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -356,50 +364,35 @@ Here is the caller graph for this function:</div>
 </div>
 <div class="memdoc">
 
-<p>Creates a new hash table of the given size using the provided hash function or the built-in string hashing function otherwise. </p>
+<p>Inserts a key/value pair into the provided table. </p>
+<p>This function inserts a new entry into the provided table containing the provided key and value pointers. The entry is placed in the table by hashing the key with the provided table's hash function. If an entry with an identical key exists, then the value pointer for that entry is changed to the provided value pointer. If free_value is a non-zero value then the old value pointer is also freed.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
-    <tr><td class="paramname">size</td><td>The size of the table to use for storing data. </td></tr>
-    <tr><td class="paramname">fn</td><td>The function to use for hasing keys.</td></tr>
+    <tr><td class="paramname">table</td><td>The table to be freed. </td></tr>
+    <tr><td class="paramname">key</td><td>The key for the associated value. </td></tr>
+    <tr><td class="paramname">val</td><td>The value to be associated with the key. </td></tr>
+    <tr><td class="paramname">free_value</td><td>Determines whether or not to free the old value pointer. </td></tr>
   </table>
   </dd>
 </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#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 class="dyncontent">
-<div class="center"><img src="ht_8h_a0a3e03a29413673acd8899d250cd0844_cgraph.png" border="0" usemap="#ht_8h_a0a3e03a29413673acd8899d250cd0844_cgraph" alt=""/></div>
-<map name="ht_8h_a0a3e03a29413673acd8899d250cd0844_cgraph" id="ht_8h_a0a3e03a29413673acd8899d250cd0844_cgraph">
-<area shape="rect" id="node3" href="ht_8c.html#a278174a0154a10b8b10b23937ca4c721" title="Takes a string key value and returns it&#39;s hashed value." alt="" coords="117,5,224,35"/>\r</map>
-</div>
-</p>
 
 </div>
 </div>
-<a class="anchor" id="a8c17c7288d2f510dd5c091cccc6dd056"></a><!-- doxytag: member="ht.h::ht_put" ref="a8c17c7288d2f510dd5c091cccc6dd056" args="(ht_table *table, void *key, void *val)" -->
+<a class="anchor" id="a0a3e03a29413673acd8899d250cd0844"></a><!-- doxytag: member="ht.h::ht_new" ref="a0a3e03a29413673acd8899d250cd0844" args="(unsigned int size, ht_hash_func fn)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void ht_put </td>
+          <td class="memname"><a class="el" href="structht__table.html">ht_table</a>* ht_new </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="structht__table.html">ht_table</a> *&#160;</td>
-          <td class="paramname"><em>table</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>key</em>, </td>
+          <td class="paramtype">unsigned int&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>val</em>&#160;</td>
+          <td class="paramtype"><a class="el" href="ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf">ht_hash_func</a>&#160;</td>
+          <td class="paramname"><em>fn</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -410,17 +403,27 @@ Here is the call graph for this function:</div>
 </div>
 <div class="memdoc">
 
-<p>Inserts a key/value pair into the provided table. </p>
+<p>Creates a new hash table. </p>
+<p>This fucntion creates a new empty hash table with an internal lookup table of the given size and the desired hash function. The hash function will be used for insertion, deletion, and lookup of elements within the table. If the hash function pointer is null then ht_hash_string is used.</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">key</td><td>The key for the associated value. </td></tr>
-    <tr><td class="paramname">val</td><td>The value to be associated with the key. </td></tr>
+    <tr><td class="paramname">size</td><td>The size of the table to use for storing data. </td></tr>
+    <tr><td class="paramname">fn</td><td>The function to use for hasing keys.</td></tr>
   </table>
   </dd>
 </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#l00073">73</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 class="dyncontent">
+<div class="center"><img src="ht_8h_a0a3e03a29413673acd8899d250cd0844_cgraph.png" border="0" usemap="#ht_8h_a0a3e03a29413673acd8899d250cd0844_cgraph" alt=""/></div>
+<map name="ht_8h_a0a3e03a29413673acd8899d250cd0844_cgraph" id="ht_8h_a0a3e03a29413673acd8899d250cd0844_cgraph">
+<area shape="rect" id="node3" href="ht_8c.html#a278174a0154a10b8b10b23937ca4c721" title="Takes a string key value and returns it&#39;s hashed value." alt="" coords="117,5,224,35"/>\r</map>
+</div>
+</p>
 
 </div>
 </div>
@@ -450,6 +453,7 @@ Here is the call graph for this function:</div>
 <div class="memdoc">
 
 <p>Resizes the underlying table used for storing key/value pairs. </p>
+<p>This function allocates a new internal lookup table of the given size to replace the internal table for the provided hash table. After the new talbe is created, all entries from the old table are rehahsed and inserted into the new lookup table. The new lookup table then replaces the old lookup table and the old lookup table is freed.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
     <tr><td class="paramname">table</td><td>The table to be resized. </td></tr>
@@ -468,7 +472,7 @@ Here is the call graph for this function:</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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index fca44ed99adb0020bb0a39b0dcbc016669397d5f..558618d805feb9e2b4fc08944eb77388a28691e4 100644 (file)
@@ -1,3 +1,3 @@
 <map id="G" name="G">
-<area shape="rect" id="node3" href="$ht_8h.html#a0a3e03a29413673acd8899d250cd0844" title="Creates a new hash table of the given size using the provided hash function or the built&#45;in string ha..." alt="" coords="161,5,223,35"/>
+<area shape="rect" id="node3" href="$ht_8h.html#a0a3e03a29413673acd8899d250cd0844" title="Creates a new hash table." alt="" coords="161,5,223,35"/>
 </map>
index df52005df8cfc4ff3316c6750e6ab1891ad16625..0ce7356d5d15aaafab9ceb5c96aa091cecab7eb3 100644 (file)
@@ -1 +1 @@
-c6c1dd045d4a706b458e14b275afbca8
\ No newline at end of file
+a664916197e72d71cb6ce0dfa272dc10
\ No newline at end of file
index 83e5f3b92e9137f7ba594c04283f48259992fa86..ea72202bbe4331190a1b1e224263356294f3803f 100644 (file)
Binary files a/docs/doxygen/html/ht_8h_a278174a0154a10b8b10b23937ca4c721_icgraph.png and b/docs/doxygen/html/ht_8h_a278174a0154a10b8b10b23937ca4c721_icgraph.png differ
index 1b69fc4e447c08b3a9d230b0f1ab09291c4deca2..b691fd5f3b05ad3400cdffcc292e1b40e63cfafb 100644 (file)
@@ -126,27 +126,27 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <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&amp;#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#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 <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="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>
+<a name="l00065"></a>00065 <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&amp;#39;s hashed value.">ht_hash_string</a>(<span class="keywordtype">void</span>* key);
+<a name="l00066"></a>00066 
+<a name="l00080"></a>00080 <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.">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="l00081"></a>00081 
+<a name="l00093"></a>00093 <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="l00094"></a>00094 
+<a name="l00110"></a>00110 <span class="keywordtype">void</span> <a class="code" href="ht_8h.html#acb11ccfcef6f11d5e9ec31f14b875140" title="Inserts a key/value pair into the provided table.">ht_insert</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="l00111"></a>00111 
+<a name="l00124"></a>00124 <span class="keywordtype">void</span>* <a class="code" href="ht_8h.html#a50855610a2e434aeec5180aa596d44a1" title="Retrieves a value from the provided table.">ht_find</a>(<a class="code" href="structht__table.html" title="A hash table.">ht_table</a>* table, <span class="keywordtype">void</span>* key);
+<a name="l00125"></a>00125 
+<a name="l00139"></a>00139 <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="l00140"></a>00140 
+<a name="l00155"></a>00155 <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="l00156"></a>00156 
+<a name="l00157"></a>00157 <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 Fri Mar 23 2012 11:12:03 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 49313f3019c5ec85d20caf699bcfadff32cb07e7..9147b533495ab5b5b30bfeb015a7638191a95f42 100644 (file)
@@ -79,7 +79,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:03 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 206fcceb812e787cca4e28ac7a3f25717fa6ef94..8a38976bdc44eb36f1ab65d5d94113eff7e049c2 100644 (file)
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 52d7310be45d3bf8f7afda15a45fa240674e31a1..b6bbd9f4803a68d3fa51be638dbe7c34e295c1ce 100644 (file)
@@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index bd0157e6a9b1e82618719edc61dcee751d9d9798..9e877fa3d512e5121a37c6e58d18290ec9b4c612 100644 (file)
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 2520044ba20ef2e57c63d66685d7e86a53ace8d9..7ff50642e8bdf86e440472af13ca784e116d44a0 100644 (file)
@@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 6a920af17c5fa0914a4bbc011b0ffd12271db07e..2c77c28c6ad839774799633cb7488340bdf56a18 100644 (file)
   </div>
  </div>
 </div>
+<div class="SRResult" id="SR_ht_5ffind">
+ <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="../ht_8h.html#a50855610a2e434aeec5180aa596d44a1" target="_parent">ht_find</a>
+  <span class="SRScope">ht.h</span>
+ </div>
+</div>
 <div class="SRResult" id="SR_ht_5ffree">
  <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>
+  <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_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#a96de71bf3880ed0a879f60b6e5254803" target="_parent">ht_free(ht_table *table, int free_key, int free_value):&#160;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):&#160;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#a96de71bf3880ed0a879f60b6e5254803" target="_parent">ht_free(ht_table *table, int free_key, int free_value):&#160;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#a96de71bf3880ed0a879f60b6e5254803" target="_parent">ht_free(ht_table *table, int free_key, int free_value):&#160;ht.c</a>
   </div>
  </div>
 </div>
 <div class="SRResult" id="SR_ht_5fget">
  <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#a5bc0ba0d31b944797e17a96372bce33e" target="_parent">ht_get(ht_table *table, void *key):&#160;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):&#160;ht.c</a>
-  </div>
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../ht_8c.html#a5bc0ba0d31b944797e17a96372bce33e" target="_parent">ht_get</a>
+  <span class="SRScope">ht.c</span>
  </div>
 </div>
 <div class="SRResult" id="SR_ht_5fhash_5ffunc">
  <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="../ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf" target="_parent">ht_hash_func</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="../ht_8h.html#a91a8d03489ef281e6f26d389c44d42cf" target="_parent">ht_hash_func</a>
   <span class="SRScope">ht.h</span>
  </div>
 </div>
 <div class="SRResult" id="SR_ht_5fhash_5fstring">
  <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_ht_5fhash_5fstring')">ht_hash_string</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_ht_5fhash_5fstring')">ht_hash_string</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="../ht_8c.html#a278174a0154a10b8b10b23937ca4c721" target="_parent">ht_hash_string(void *key):&#160;ht.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="../ht_8h.html#a278174a0154a10b8b10b23937ca4c721" target="_parent">ht_hash_string(void *key):&#160;ht.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="../ht_8c.html#a278174a0154a10b8b10b23937ca4c721" target="_parent">ht_hash_string(void *key):&#160;ht.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="../ht_8h.html#a278174a0154a10b8b10b23937ca4c721" target="_parent">ht_hash_string(void *key):&#160;ht.c</a>
   </div>
  </div>
 </div>
+<div class="SRResult" id="SR_ht_5finsert">
+ <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#acb11ccfcef6f11d5e9ec31f14b875140" target="_parent">ht_insert</a>
+  <span class="SRScope">ht.h</span>
+ </div>
+</div>
 <div class="SRResult" id="SR_ht_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_ht_5fnew')">ht_new</a>
+  <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_5fnew')">ht_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="../ht_8c.html#a0a3e03a29413673acd8899d250cd0844" target="_parent">ht_new(unsigned int size, ht_hash_func fn):&#160;ht.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="../ht_8h.html#a0a3e03a29413673acd8899d250cd0844" target="_parent">ht_new(unsigned int size, ht_hash_func fn):&#160;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#a0a3e03a29413673acd8899d250cd0844" target="_parent">ht_new(unsigned int size, ht_hash_func fn):&#160;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#a0a3e03a29413673acd8899d250cd0844" target="_parent">ht_new(unsigned int size, ht_hash_func fn):&#160;ht.c</a>
   </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="javascript:searchResults.Toggle('SR_ht_5fnode')">ht_node</a>
+  <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_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():&#160;ht.h</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="../structht__node.html" target="_parent">ht_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="../ht_8h.html#a3b70269a378f408bce2ae501e7ed1205" target="_parent">ht_node():&#160;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#a8c17c7288d2f510dd5c091cccc6dd056" target="_parent">ht_put(ht_table *table, void *key, void *val):&#160;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):&#160;ht.c</a>
-  </div>
+  <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../ht_8c.html#a8c17c7288d2f510dd5c091cccc6dd056" target="_parent">ht_put</a>
+  <span class="SRScope">ht.c</span>
  </div>
 </div>
 <div class="SRResult" id="SR_ht_5fresize">
  <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>
+  <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_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#ad9cac6da8b459d5960079b0d95489960" target="_parent">ht_resize(ht_table *table, unsigned int size):&#160;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):&#160;ht.c</a>
+    <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="../ht_8c.html#ad9cac6da8b459d5960079b0d95489960" target="_parent">ht_resize(ht_table *table, unsigned int size):&#160;ht.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="../ht_8h.html#ad9cac6da8b459d5960079b0d95489960" target="_parent">ht_resize(ht_table *table, unsigned int size):&#160;ht.c</a>
   </div>
  </div>
 </div>
 <div class="SRResult" id="SR_ht_5ftable">
  <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="../structht__table.html" target="_parent">ht_table</a>
+  <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../structht__table.html" target="_parent">ht_table</a>
  </div>
 </div>
 <div class="SRStatus" id="Searching">Searching...</div>
index d2dc9ce209ce3d5f25bc117496c541ace8f40177..13b80620bab91ff09e842ced783be74370443cbb 100644 (file)
   <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):&#160;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):&#160;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#a58add98a437335c8f927344215a40d11" target="_parent">sll_pop_back(sll_node *list, int free_contents):&#160;sll.h</a>
   </div>
  </div>
 </div>
   <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):&#160;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):&#160;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#a6702f6f18b540bd21165295eb3ca5c25" target="_parent">sll_pop_front(sll_node *list, int free_contents):&#160;sll.h</a>
   </div>
  </div>
 </div>
index 819cf90b27c4e345281a48ea65a2c7de58e710f0..bd8afc01d1ac7fc1737025094b4538b2555042a0 100644 (file)
   </div>
  </div>
 </div>
+<div class="SRResult" id="SR_ht_5ffind">
+ <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#a50855610a2e434aeec5180aa596d44a1" target="_parent">ht_find</a>
+  <span class="SRScope">ht.h</span>
+ </div>
+</div>
 <div class="SRResult" id="SR_ht_5ffree">
  <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>
+  <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_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#a96de71bf3880ed0a879f60b6e5254803" target="_parent">ht_free(ht_table *table, int free_key, int free_value):&#160;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):&#160;ht.c</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#a96de71bf3880ed0a879f60b6e5254803" target="_parent">ht_free(ht_table *table, int free_key, int free_value):&#160;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#a96de71bf3880ed0a879f60b6e5254803" target="_parent">ht_free(ht_table *table, int free_key, int free_value):&#160;ht.c</a>
   </div>
  </div>
 </div>
 <div class="SRResult" id="SR_ht_5fget">
  <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#a5bc0ba0d31b944797e17a96372bce33e" target="_parent">ht_get(ht_table *table, void *key):&#160;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):&#160;ht.c</a>
-  </div>
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../ht_8c.html#a5bc0ba0d31b944797e17a96372bce33e" target="_parent">ht_get</a>
+  <span class="SRScope">ht.c</span>
  </div>
 </div>
 <div class="SRResult" id="SR_ht_5fhash_5fstring">
  <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_5fhash_5fstring')">ht_hash_string</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_ht_5fhash_5fstring')">ht_hash_string</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#a278174a0154a10b8b10b23937ca4c721" target="_parent">ht_hash_string(void *key):&#160;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#a278174a0154a10b8b10b23937ca4c721" target="_parent">ht_hash_string(void *key):&#160;ht.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="../ht_8c.html#a278174a0154a10b8b10b23937ca4c721" target="_parent">ht_hash_string(void *key):&#160;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#a278174a0154a10b8b10b23937ca4c721" target="_parent">ht_hash_string(void *key):&#160;ht.c</a>
   </div>
  </div>
 </div>
+<div class="SRResult" id="SR_ht_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="../ht_8h.html#acb11ccfcef6f11d5e9ec31f14b875140" target="_parent">ht_insert</a>
+  <span class="SRScope">ht.h</span>
+ </div>
+</div>
 <div class="SRResult" id="SR_ht_5fnew">
  <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_5fnew')">ht_new</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_ht_5fnew')">ht_new</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#a0a3e03a29413673acd8899d250cd0844" target="_parent">ht_new(unsigned int size, ht_hash_func fn):&#160;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#a0a3e03a29413673acd8899d250cd0844" target="_parent">ht_new(unsigned int size, ht_hash_func fn):&#160;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#a0a3e03a29413673acd8899d250cd0844" target="_parent">ht_new(unsigned int size, ht_hash_func fn):&#160;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#a0a3e03a29413673acd8899d250cd0844" target="_parent">ht_new(unsigned int size, ht_hash_func fn):&#160;ht.c</a>
   </div>
  </div>
 </div>
 <div class="SRResult" id="SR_ht_5fput">
  <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#a8c17c7288d2f510dd5c091cccc6dd056" target="_parent">ht_put(ht_table *table, void *key, void *val):&#160;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):&#160;ht.c</a>
-  </div>
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../ht_8c.html#a8c17c7288d2f510dd5c091cccc6dd056" target="_parent">ht_put</a>
+  <span class="SRScope">ht.c</span>
  </div>
 </div>
 <div class="SRResult" id="SR_ht_5fresize">
  <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>
+  <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_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#ad9cac6da8b459d5960079b0d95489960" target="_parent">ht_resize(ht_table *table, unsigned int size):&#160;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):&#160;ht.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="../ht_8c.html#ad9cac6da8b459d5960079b0d95489960" target="_parent">ht_resize(ht_table *table, unsigned int size):&#160;ht.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="../ht_8h.html#ad9cac6da8b459d5960079b0d95489960" target="_parent">ht_resize(ht_table *table, unsigned int size):&#160;ht.c</a>
   </div>
  </div>
 </div>
index be09f296e1a80a4f60bdeb5ba0122e840230a30f..8f8c4645a3e4588ea853b6b2896393f48f5a0e4b 100644 (file)
@@ -84,7 +84,7 @@
   <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):&#160;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):&#160;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#a58add98a437335c8f927344215a40d11" target="_parent">sll_pop_back(sll_node *list, int free_contents):&#160;sll.h</a>
   </div>
  </div>
 </div>
@@ -93,7 +93,7 @@
   <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):&#160;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):&#160;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#a6702f6f18b540bd21165295eb3ca5c25" target="_parent">sll_pop_front(sll_node *list, int free_contents):&#160;sll.h</a>
   </div>
  </div>
 </div>
index 92d332c216c70a7f831a8f9d5115742a6f2def5a..40ac78fdf06a9fa56c9371ae5704a48080232dc7 100644 (file)
@@ -110,9 +110,7 @@ Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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="structsll__node.html">sll_node</a> *&#160;</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>
@@ -139,6 +137,7 @@ Functions</h2></td></tr>
 <div class="memdoc">
 
 <p>Finds and returns the last node in the supplied linked list. </p>
+<p>This function returns a pointer to the last node in the given 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>
@@ -192,11 +191,11 @@ Here is the caller graph for this function:</div>
 <div class="memdoc">
 
 <p>Deletes a node from the supplied list. </p>
-<p>Deletes the node found at the supplied index from the supplied list and frees the memory used by the node and its contents.</p>
+<p>This function traverses the list to the desired index and frees the memory allocated for that node. If the deleted node has a child then the child is reattached to the deleted node's parent. If free_contents is passed a non-zero value then the node's contents pointer is also freed.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
-    <tr><td class="paramname">list</td><td></td></tr>
-    <tr><td class="paramname">index</td><td></td></tr>
+    <tr><td class="paramname">list</td><td>The list to operate on. </td></tr>
+    <tr><td class="paramname">index</td><td>The index of the node to delete. </td></tr>
     <tr><td class="paramname">free_contents</td><td>Whether or not to also free the contents of the node.</td></tr>
   </table>
   </dd>
@@ -242,7 +241,7 @@ Here is the call graph for this function:</div>
 <div class="memdoc">
 
 <p>Frees all memory used by a linked list. </p>
-<p>Loops through the supplied list and frees all nodes. Also frees contents if free_contents is passed TRUE. This is to avoid trying to free memory allocated on the stack.</p>
+<p>This function loops through the supplied list and frees all nodes. Also frees contents if free_contents is passed a non-zero value.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
     <tr><td class="paramname">list</td><td>The list to be freed. </td></tr>
@@ -271,6 +270,7 @@ Here is the call graph for this function:</div>
 <div class="memdoc">
 
 <p>Finds and returns the first node in the supplied linked list. </p>
+<p>This function returns a pointer to the first node in the given 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>
@@ -309,7 +309,7 @@ Here is the call graph for this function:</div>
 <div class="memdoc">
 
 <p>Return the node at the specified index in a linked list. </p>
-<p>Loops through the linked list and returns the node in the list at the specified index. Returns NULL if the index is out of range.</p>
+<p>This function loops through the linked list and returns the node in the list at the specified index. Returns NULL if the index is out of range.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
     <tr><td class="paramname">list</td><td>The list to search for the supplied index. </td></tr>
@@ -364,11 +364,12 @@ Here is the caller graph for this function:</div>
 <div class="memdoc">
 
 <p>Inserts a new node in a linked list at the specified index. </p>
+<p>This function traverses the list to the desired index and inserts a new node with the given contents at that position. The node previously at the desired index becomes the child of the new node.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
-    <tr><td class="paramname">list</td><td></td></tr>
-    <tr><td class="paramname">index</td><td></td></tr>
-    <tr><td class="paramname">contents</td><td></td></tr>
+    <tr><td class="paramname">list</td><td>The list to operate on. </td></tr>
+    <tr><td class="paramname">index</td><td>The index where the new node will be inserted. </td></tr>
+    <tr><td class="paramname">contents</td><td>The contents of the new node.</td></tr>
   </table>
   </dd>
 </dl>
@@ -403,7 +404,7 @@ Here is the call graph for this function:</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>This function 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 list to be counted.</td></tr>
@@ -432,7 +433,7 @@ Here is the call graph for this function:</div>
 <div class="memdoc">
 
 <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>
+<p>This function allocates a new node 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>
@@ -469,16 +470,6 @@ Here is the caller graph for this function:</div>
 </div>
 <div class="memdoc">
 
-<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></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#l00080">80</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
 
 </div>
@@ -498,16 +489,6 @@ Here is the caller graph for this function:</div>
 </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>
@@ -538,10 +519,11 @@ Here is the caller graph for this function:</div>
 <div class="memdoc">
 
 <p>Adds a new node to the end of an existing linked list. </p>
+<p>This function creates a new node and pushes it to the end of the given list. The newly created node becomes the new tail 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>
+    <tr><td class="paramname">list</td><td>The list to operate on. </td></tr>
+    <tr><td class="paramname">contents</td><td>The contents of the new node.</td></tr>
   </table>
   </dd>
 </dl>
@@ -586,10 +568,11 @@ Here is the call graph for this function:</div>
 <div class="memdoc">
 
 <p>Adds a new node to the front of an existing linked list. </p>
+<p>This function creates a new node and pushes it to the beginning of the given list. The newly created node becomes the new head 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>
+    <tr><td class="paramname">list</td><td>The list to operate on. </td></tr>
+    <tr><td class="paramname">contents</td><td>The contents of the new node.</td></tr>
   </table>
   </dd>
 </dl>
@@ -604,7 +587,7 @@ Here is the call graph for this function:</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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 7dcda9cda512b042c57cd7b0cf6641e395c66334..3154950472ab97ab4e8ba7a5a1e35bbde0a31de6 100644 (file)
@@ -160,11 +160,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <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="l00080"></a><a class="code" href="sll_8c.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">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="l00084"></a><a class="code" href="sll_8c.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">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 
@@ -230,7 +230,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <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 Fri Mar 23 2012 11:12:03 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 03d1e851588a2ce8a983f965f45af33d8e650869..86acd3ec56accdab5f4ef55ac5fd8c00f14548b8 100644 (file)
@@ -113,14 +113,14 @@ Functions</h2></td></tr>
 <tr><td class="mdescLeft">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a6702f6f18b540bd21165295eb3ca5c25">sll_pop_front</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, int free_contents)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes and returns a pointer to the first element of the list.  <a href="#a6702f6f18b540bd21165295eb3ca5c25"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sll_8h.html#a58add98a437335c8f927344215a40d11">sll_pop_back</a> (<a class="el" href="structsll__node.html">sll_node</a> *list, int free_contents)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes and returns a pointer to the last element of the list.  <a href="#a58add98a437335c8f927344215a40d11"></a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsll__node.html">sll_node</a> *&#160;</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">&#160;</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="structsll__node.html">sll_node</a> *&#160;</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>
@@ -163,6 +163,7 @@ Functions</h2></td></tr>
 <div class="memdoc">
 
 <p>Finds and returns the last node in the supplied linked list. </p>
+<p>This function returns a pointer to the last node in the given 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>
@@ -216,11 +217,11 @@ Here is the caller graph for this function:</div>
 <div class="memdoc">
 
 <p>Deletes a node from the supplied list. </p>
-<p>Deletes the node found at the supplied index from the supplied list and frees the memory used by the node and its contents.</p>
+<p>This function traverses the list to the desired index and frees the memory allocated for that node. If the deleted node has a child then the child is reattached to the deleted node's parent. If free_contents is passed a non-zero value then the node's contents pointer is also freed.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
-    <tr><td class="paramname">list</td><td></td></tr>
-    <tr><td class="paramname">index</td><td></td></tr>
+    <tr><td class="paramname">list</td><td>The list to operate on. </td></tr>
+    <tr><td class="paramname">index</td><td>The index of the node to delete. </td></tr>
     <tr><td class="paramname">free_contents</td><td>Whether or not to also free the contents of the node.</td></tr>
   </table>
   </dd>
@@ -266,7 +267,7 @@ Here is the call graph for this function:</div>
 <div class="memdoc">
 
 <p>Frees all memory used by a linked list. </p>
-<p>Loops through the supplied list and frees all nodes. Also frees contents if free_contents is passed TRUE. This is to avoid trying to free memory allocated on the stack.</p>
+<p>This function loops through the supplied list and frees all nodes. Also frees contents if free_contents is passed a non-zero value.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
     <tr><td class="paramname">list</td><td>The list to be freed. </td></tr>
@@ -295,6 +296,7 @@ Here is the call graph for this function:</div>
 <div class="memdoc">
 
 <p>Finds and returns the first node in the supplied linked list. </p>
+<p>This function returns a pointer to the first node in the given 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>
@@ -333,7 +335,7 @@ Here is the call graph for this function:</div>
 <div class="memdoc">
 
 <p>Return the node at the specified index in a linked list. </p>
-<p>Loops through the linked list and returns the node in the list at the specified index. Returns NULL if the index is out of range.</p>
+<p>This function loops through the linked list and returns the node in the list at the specified index. Returns NULL if the index is out of range.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
     <tr><td class="paramname">list</td><td>The list to search for the supplied index. </td></tr>
@@ -388,11 +390,12 @@ Here is the caller graph for this function:</div>
 <div class="memdoc">
 
 <p>Inserts a new node in a linked list at the specified index. </p>
+<p>This function traverses the list to the desired index and inserts a new node with the given contents at that position. The node previously at the desired index becomes the child of the new node.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
-    <tr><td class="paramname">list</td><td></td></tr>
-    <tr><td class="paramname">index</td><td></td></tr>
-    <tr><td class="paramname">contents</td><td></td></tr>
+    <tr><td class="paramname">list</td><td>The list to operate on. </td></tr>
+    <tr><td class="paramname">index</td><td>The index where the new node will be inserted. </td></tr>
+    <tr><td class="paramname">contents</td><td>The contents of the new node.</td></tr>
   </table>
   </dd>
 </dl>
@@ -427,7 +430,7 @@ Here is the call graph for this function:</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>This function 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 list to be counted.</td></tr>
@@ -456,7 +459,7 @@ Here is the call graph for this function:</div>
 <div class="memdoc">
 
 <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>
+<p>This function allocates a new node 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>
@@ -478,62 +481,80 @@ Here is the caller graph for this function:</div>
 
 </div>
 </div>
-<a class="anchor" id="af72e93329186ac936d2bf6f544aa1f6b"></a><!-- doxytag: member="sll.h::sll_pop_back" ref="af72e93329186ac936d2bf6f544aa1f6b" args="(sll_node *list)" -->
+<a class="anchor" id="a58add98a437335c8f927344215a40d11"></a><!-- doxytag: member="sll.h::sll_pop_back" ref="a58add98a437335c8f927344215a40d11" args="(sll_node *list, int free_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_pop_back </td>
+          <td class="memname">void sll_pop_back </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> *&#160;</td>
-          <td class="paramname"><em>list</em></td><td>)</td>
+          <td class="paramname"><em>list</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>free_contents</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>Removes and returns a pointer to the last element of the list. </p>
+<p>This function removes the last node from the list and frees it's associated memory. If free_contents is passed a non-zero value then it's contents pointer is also freed. The second to last node in the list becomes the new tail 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>
+    <tr><td class="paramname">list</td><td>The list to operate on. </td></tr>
+    <tr><td class="paramname">free_contents</td><td>Determines whether to free the contents pointer.</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#l00080">80</a> of file <a class="el" href="sll_8c_source.html">sll.c</a>.</p>
-
 </div>
 </div>
-<a class="anchor" id="a1588e5a1f90852ee48403d5313d64269"></a><!-- doxytag: member="sll.h::sll_pop_front" ref="a1588e5a1f90852ee48403d5313d64269" args="(sll_node *list)" -->
+<a class="anchor" id="a6702f6f18b540bd21165295eb3ca5c25"></a><!-- doxytag: member="sll.h::sll_pop_front" ref="a6702f6f18b540bd21165295eb3ca5c25" args="(sll_node *list, int free_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_pop_front </td>
+          <td class="memname">void sll_pop_front </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structsll__node.html">sll_node</a> *&#160;</td>
-          <td class="paramname"><em>list</em></td><td>)</td>
+          <td class="paramname"><em>list</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>free_contents</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</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>
+<p>This function removes the first node from the list and frees it's associated memory. If free_contents is passed a non-zero value then it's contents pointer is also freed. The second node in the list becomes the new head 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>
+    <tr><td class="paramname">list</td><td>The lsit to operate on. </td></tr>
+    <tr><td class="paramname">free_contents</td><td>Determines whether to free the contents pointer.</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)" -->
@@ -562,10 +583,11 @@ Here is the caller graph for this function:</div>
 <div class="memdoc">
 
 <p>Adds a new node to the end of an existing linked list. </p>
+<p>This function creates a new node and pushes it to the end of the given list. The newly created node becomes the new tail 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>
+    <tr><td class="paramname">list</td><td>The list to operate on. </td></tr>
+    <tr><td class="paramname">contents</td><td>The contents of the new node.</td></tr>
   </table>
   </dd>
 </dl>
@@ -610,10 +632,11 @@ Here is the call graph for this function:</div>
 <div class="memdoc">
 
 <p>Adds a new node to the front of an existing linked list. </p>
+<p>This function creates a new node and pushes it to the beginning of the given list. The newly created node becomes the new head 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>
+    <tr><td class="paramname">list</td><td>The list to operate on. </td></tr>
+    <tr><td class="paramname">contents</td><td>The contents of the new node.</td></tr>
   </table>
   </dd>
 </dl>
@@ -628,7 +651,7 @@ Here is the call graph for this function:</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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 5ca3dbefebe9ccf75751610b1ecdaea5810ccdfc..a688022df7f869a2a338d6a10130632354ecdade 100644 (file)
@@ -118,35 +118,35 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <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="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="l00060"></a>00060 <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="l00061"></a>00061 
+<a name="l00071"></a>00071 <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="l00072"></a>00072 
+<a name="l00084"></a>00084 <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="l00085"></a>00085 
+<a name="l00097"></a>00097 <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="l00098"></a>00098 
+<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#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="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>
+<a name="l00125"></a>00125 <span class="keywordtype">void</span> <a class="code" href="sll_8c.html#a1588e5a1f90852ee48403d5313d64269">sll_pop_front</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="l00126"></a>00126 
+<a name="l00140"></a>00140 <span class="keywordtype">void</span> <a class="code" href="sll_8c.html#af72e93329186ac936d2bf6f544aa1f6b">sll_pop_back</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="l00141"></a>00141 
+<a name="l00155"></a>00155 <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="l00156"></a>00156 
+<a name="l00171"></a>00171 <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="l00172"></a>00172 
+<a name="l00182"></a>00182 <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="l00183"></a>00183 
+<a name="l00194"></a>00194 <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="l00195"></a>00195 
+<a name="l00196"></a>00196 <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index f49d8b60bf78370f36084ac18d427ddfb6b141b9..b28b8b3385994f6a3a9d5466029e7c8ed88caabe 100644 (file)
@@ -90,7 +90,7 @@ This is the complete list of members for <a class="el" href="structbt__node.html
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 3936ba57ca30956721a744b00b72cf418bc1488b..4d424b17d8a60e0cd6c2f3ab665e11e4ff8579aa 100644 (file)
@@ -170,7 +170,7 @@ Public Attributes</h2></td></tr>
   <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&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index bea5d8c16ef2e9160b5cd118797c03c699c845da..eef4dbe06969e2053cedec705949b1bf0b293444 100644 (file)
@@ -89,7 +89,7 @@ This is the complete list of members for <a class="el" href="structbt__tree.html
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 5ccb338267c1ff3258d925c585eebe9c15a74786..e3fe0a15911acd43e8fa1a37495ff1f0aa081327 100644 (file)
@@ -153,7 +153,7 @@ Public Attributes</h2></td></tr>
   <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&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 97192f6215d71cc30385e2127086cbfc392a00ba..6474298cc861eeaf29b0f784c29de79be3baaec2 100644 (file)
@@ -90,7 +90,7 @@ This is the complete list of members for <a class="el" href="structht__node.html
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 13ec7d01029fdf14d6880ff75cc67087ee8e18d5..2ff6db4b9301903645ead08542135001bfc24498 100644 (file)
@@ -165,7 +165,7 @@ Public Attributes</h2></td></tr>
   <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&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 747eedeb4062f167070bb36a855f2f5696c96a4f..a8275894a446575c2fa9885311ca3fc62deb5782 100644 (file)
@@ -90,7 +90,7 @@ This is the complete list of members for <a class="el" href="structht__table.htm
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 628ce81b43fc2c0677d65be045d4b0f25ef898a6..6d549fb713a9d81d28bdd7db8cc32b02eae67679 100644 (file)
@@ -172,7 +172,7 @@ Public Attributes</h2></td></tr>
   <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 Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:04 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 5153e2ecf4ad882f335bf71083b4b3a53beb4614..9e2383fa2da126a25b3d435db41eb5ca4e0bf6fe 100644 (file)
@@ -89,7 +89,7 @@ This is the complete list of members for <a class="el" href="structsll__node.htm
 </div>
   <div id="nav-path" class="navpath">
     <ul>
-      <li class="footer">Generated on Fri Mar 23 2012 11:12:04 for Data Structures by&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:05 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 08dd35685460263d501bb4077f1b65028818e041..9b50f510b4a95148a59cbb6bdab111854ba78aab 100644 (file)
@@ -151,7 +151,7 @@ Public Attributes</h2></td></tr>
   <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&#160;
+      <li class="footer">Generated on Fri Mar 23 2012 12:45:05 for Data Structures by&#160;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
     </ul>
index 81d7ea752ca9165774072a4b800f9195f10adab7..c86ecac9cf11873d3f35a82bba914440603bca59 100644 (file)
@@ -73,8 +73,8 @@
 \fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
 \fancyfoot[LE]{\fancyplain{}{}}
 \fancyfoot[CE]{\fancyplain{}{}}
-\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[RE]{\fancyplain{}{\bfseries\scriptsize Generated on Fri Mar 23 2012 12:45:04 for Data Structures by Doxygen }}
+\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated on Fri Mar 23 2012 12:45:04 for Data Structures by Doxygen }}
 \fancyfoot[CO]{\fancyplain{}{}}
 \fancyfoot[RO]{\fancyplain{}{}}
 %---------- Internal commands used in this style file ----------------
index 5a496346c6c22a056fca7b694fb425a56ee78d61..88dfc090f194181d0ed067778eaf829548fc2dee 100644 (file)
@@ -19,13 +19,13 @@ Include dependency graph for ht.c:\nopagebreak
 unsigned int \hyperlink{ht_8c_a278174a0154a10b8b10b23937ca4c721}{ht\_\-hash\_\-string} (void $\ast$key)
 \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 
+\begin{DoxyCompactList}\small\item\em Creates a new hash table. \item\end{DoxyCompactList}\item 
 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 
+\item 
 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 
+\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)
@@ -49,6 +49,8 @@ void \hyperlink{ht_8c_a81a813f472a9b689032704fca76b3ce8}{ht\_\-delete} (\hyperli
 
 Deletes a key/value pair from the provided hash table. 
 
+This function looks up an entry in the table by hashing the key with the table's hash function. If an entry is found then the memory allocated for the entry is freed. If free\_\-key or free\_\-value are non-\/zero values then the key or value pointers are freed respectively.
+
 
 \begin{DoxyParams}{Parameters}
 {\em table} & The table from which the key/value pait will be deleted. \\
@@ -79,6 +81,8 @@ Definition at line 125 of file ht.c.
 
 Frees all memory used by the provided hash table. 
 
+This function frees all memory allocated for the given table. If free\_\-key or free\_\-value are non-\/zero values then the key or value pointers are freed respectively.
+
 
 \begin{DoxyParams}{Parameters}
 {\em table} & The table to be freed. \\
@@ -104,20 +108,6 @@ Definition at line 55 of file ht.c.
 \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 108 of file ht.c.
 
 \hypertarget{ht_8c_a278174a0154a10b8b10b23937ca4c721}{
@@ -133,6 +123,8 @@ Definition at line 108 of file ht.c.
 
 Takes a string key value and returns it's hashed value. 
 
+This function takes a pointer to a string and returns a hash value based on the contents of the string.
+
 
 \begin{DoxyParams}{Parameters}
 {\em key} & Pointer to the string to hash.\\
@@ -147,7 +139,8 @@ 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
@@ -168,7 +161,9 @@ Here is the caller graph for this function:\nopagebreak
 \label{ht_8c_a0a3e03a29413673acd8899d250cd0844}
 
 
-Creates a new hash table of the given size using the provided hash function or the built-\/in string hashing function otherwise. 
+Creates a new hash table. 
+
+This fucntion creates a new empty hash table with an internal lookup table of the given size and the desired hash function. The hash function will be used for insertion, deletion, and lookup of elements within the table. If the hash function pointer is null then ht\_\-hash\_\-string is used.
 
 
 \begin{DoxyParams}{Parameters}
@@ -208,19 +203,6 @@ Here is the call graph for this function:\nopagebreak
 \label{ht_8c_a8c17c7288d2f510dd5c091cccc6dd056}
 
 
-Inserts a key/value pair into the provided table. 
-
-
-\begin{DoxyParams}{Parameters}
-{\em table} & The table to be freed. \\
-\hline
-{\em key} & The key for the associated value. \\
-\hline
-{\em val} & The value to be associated with the key. \\
-\hline
-\end{DoxyParams}
-
-
 Definition at line 73 of file ht.c.
 
 \hypertarget{ht_8c_ad9cac6da8b459d5960079b0d95489960}{
@@ -237,6 +219,8 @@ Definition at line 73 of file ht.c.
 
 Resizes the underlying table used for storing key/value pairs. 
 
+This function allocates a new internal lookup table of the given size to replace the internal table for the provided hash table. After the new talbe is created, all entries from the old table are rehahsed and inserted into the new lookup table. The new lookup table then replaces the old lookup table and the old lookup table is freed.
+
 
 \begin{DoxyParams}{Parameters}
 {\em table} & The table to be resized. \\
index a3f1e6381db7f79eef9c22d036c623eafd903014..1e7f7febd8acba5d6ee4e188a6c30f4bb25d31db 100644 (file)
@@ -1 +1 @@
-a648bcf8938db9ae20e8ca6124b91987
\ No newline at end of file
+5effe68ea7e27dd3011415a7f9133dc6
\ No newline at end of file
index bc2ca0d6db4427e98d66ae43340fa241bf99dd8c..d4f4c87c66032a74c9515ed17413dc27973e7edf 100644 (file)
@@ -29,12 +29,12 @@ typedef struct \hyperlink{structht__node}{ht\_\-node} \hyperlink{ht_8h_a3b70269a
 unsigned int \hyperlink{ht_8h_a278174a0154a10b8b10b23937ca4c721}{ht\_\-hash\_\-string} (void $\ast$key)
 \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_8h_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 
+\begin{DoxyCompactList}\small\item\em Creates a new hash table. \item\end{DoxyCompactList}\item 
 void \hyperlink{ht_8h_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_8h_a8c17c7288d2f510dd5c091cccc6dd056}{ht\_\-put} (\hyperlink{structht__table}{ht\_\-table} $\ast$table, void $\ast$key, void $\ast$val)
+void \hyperlink{ht_8h_acb11ccfcef6f11d5e9ec31f14b875140}{ht\_\-insert} (\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_8h_a5bc0ba0d31b944797e17a96372bce33e}{ht\_\-get} (\hyperlink{structht__table}{ht\_\-table} $\ast$table, void $\ast$key)
+void $\ast$ \hyperlink{ht_8h_a50855610a2e434aeec5180aa596d44a1}{ht\_\-find} (\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_8h_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 
@@ -84,6 +84,8 @@ A node in a hash table.
 
 Deletes a key/value pair from the provided hash table. 
 
+This function looks up an entry in the table by hashing the key with the table's hash function. If an entry is found then the memory allocated for the entry is freed. If free\_\-key or free\_\-value are non-\/zero values then the key or value pointers are freed respectively.
+
 
 \begin{DoxyParams}{Parameters}
 {\em table} & The table from which the key/value pait will be deleted. \\
@@ -99,6 +101,32 @@ Deletes a key/value pair from the provided hash table.
 
 Definition at line 125 of file ht.c.
 
+\hypertarget{ht_8h_a50855610a2e434aeec5180aa596d44a1}{
+\index{ht.h@{ht.h}!ht\_\-find@{ht\_\-find}}
+\index{ht\_\-find@{ht\_\-find}!ht.h@{ht.h}}
+\subsubsection[{ht\_\-find}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ ht\_\-find (
+\begin{DoxyParamCaption}
+\item[{{\bf ht\_\-table} $\ast$}]{table, }
+\item[{void $\ast$}]{key}
+\end{DoxyParamCaption}
+)}}
+\label{ht_8h_a50855610a2e434aeec5180aa596d44a1}
+
+
+Retrieves a value from the provided table. 
+
+This function looks up an entry in the table by hashing the key with the table's hash function. It then returns the pointer to the value of the found entry or a null pointer if no entry was found.
+
+
+\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}
 \hypertarget{ht_8h_a96de71bf3880ed0a879f60b6e5254803}{
 \index{ht.h@{ht.h}!ht\_\-free@{ht\_\-free}}
 \index{ht\_\-free@{ht\_\-free}!ht.h@{ht.h}}
@@ -114,6 +142,8 @@ Definition at line 125 of file ht.c.
 
 Frees all memory used by the provided hash table. 
 
+This function frees all memory allocated for the given table. If free\_\-key or free\_\-value are non-\/zero values then the key or value pointers are freed respectively.
+
 
 \begin{DoxyParams}{Parameters}
 {\em table} & The table to be freed. \\
@@ -127,34 +157,6 @@ Frees all memory used by the provided hash table.
 
 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}}
-\subsubsection[{ht\_\-get}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ ht\_\-get (
-\begin{DoxyParamCaption}
-\item[{{\bf ht\_\-table} $\ast$}]{table, }
-\item[{void $\ast$}]{key}
-\end{DoxyParamCaption}
-)}}
-\label{ht_8h_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 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}}
@@ -168,6 +170,8 @@ Definition at line 108 of file ht.c.
 
 Takes a string key value and returns it's hashed value. 
 
+This function takes a pointer to a string and returns a hash value based on the contents of the string.
+
 
 \begin{DoxyParams}{Parameters}
 {\em key} & Pointer to the string to hash.\\
@@ -182,7 +186,8 @@ 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
@@ -191,6 +196,34 @@ Here is the caller graph for this function:\nopagebreak
 \end{figure}
 
 
+\hypertarget{ht_8h_acb11ccfcef6f11d5e9ec31f14b875140}{
+\index{ht.h@{ht.h}!ht\_\-insert@{ht\_\-insert}}
+\index{ht\_\-insert@{ht\_\-insert}!ht.h@{ht.h}}
+\subsubsection[{ht\_\-insert}]{\setlength{\rightskip}{0pt plus 5cm}void ht\_\-insert (
+\begin{DoxyParamCaption}
+\item[{{\bf ht\_\-table} $\ast$}]{table, }
+\item[{void $\ast$}]{key, }
+\item[{void $\ast$}]{val}
+\end{DoxyParamCaption}
+)}}
+\label{ht_8h_acb11ccfcef6f11d5e9ec31f14b875140}
+
+
+Inserts a key/value pair into the provided table. 
+
+This function inserts a new entry into the provided table containing the provided key and value pointers. The entry is placed in the table by hashing the key with the provided table's hash function. If an entry with an identical key exists, then the value pointer for that entry is changed to the provided value pointer. If free\_\-value is a non-\/zero value then the old value pointer is also freed.
+
+
+\begin{DoxyParams}{Parameters}
+{\em table} & The table to be freed. \\
+\hline
+{\em key} & The key for the associated value. \\
+\hline
+{\em val} & The value to be associated with the key. \\
+\hline
+{\em free\_\-value} & Determines whether or not to free the old value pointer. \\
+\hline
+\end{DoxyParams}
 \hypertarget{ht_8h_a0a3e03a29413673acd8899d250cd0844}{
 \index{ht.h@{ht.h}!ht\_\-new@{ht\_\-new}}
 \index{ht\_\-new@{ht\_\-new}!ht.h@{ht.h}}
@@ -203,7 +236,9 @@ Here is the caller graph for this function:\nopagebreak
 \label{ht_8h_a0a3e03a29413673acd8899d250cd0844}
 
 
-Creates a new hash table of the given size using the provided hash function or the built-\/in string hashing function otherwise. 
+Creates a new hash table. 
+
+This fucntion creates a new empty hash table with an internal lookup table of the given size and the desired hash function. The hash function will be used for insertion, deletion, and lookup of elements within the table. If the hash function pointer is null then ht\_\-hash\_\-string is used.
 
 
 \begin{DoxyParams}{Parameters}
@@ -230,34 +265,6 @@ Here is the call graph for this function:\nopagebreak
 \end{figure}
 
 
-\hypertarget{ht_8h_a8c17c7288d2f510dd5c091cccc6dd056}{
-\index{ht.h@{ht.h}!ht\_\-put@{ht\_\-put}}
-\index{ht\_\-put@{ht\_\-put}!ht.h@{ht.h}}
-\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_8h_a8c17c7288d2f510dd5c091cccc6dd056}
-
-
-Inserts a key/value pair into the provided table. 
-
-
-\begin{DoxyParams}{Parameters}
-{\em table} & The table to be freed. \\
-\hline
-{\em key} & The key for the associated value. \\
-\hline
-{\em val} & The value to be associated with the key. \\
-\hline
-\end{DoxyParams}
-
-
-Definition at line 73 of file ht.c.
-
 \hypertarget{ht_8h_ad9cac6da8b459d5960079b0d95489960}{
 \index{ht.h@{ht.h}!ht\_\-resize@{ht\_\-resize}}
 \index{ht\_\-resize@{ht\_\-resize}!ht.h@{ht.h}}
@@ -272,6 +279,8 @@ Definition at line 73 of file ht.c.
 
 Resizes the underlying table used for storing key/value pairs. 
 
+This function allocates a new internal lookup table of the given size to replace the internal table for the provided hash table. After the new talbe is created, all entries from the old table are rehahsed and inserted into the new lookup table. The new lookup table then replaces the old lookup table and the old lookup table is freed.
+
 
 \begin{DoxyParams}{Parameters}
 {\em table} & The table to be resized. \\
index a3f1e6381db7f79eef9c22d036c623eafd903014..1e7f7febd8acba5d6ee4e188a6c30f4bb25d31db 100644 (file)
@@ -1 +1 @@
-a648bcf8938db9ae20e8ca6124b91987
\ No newline at end of file
+5effe68ea7e27dd3011415a7f9133dc6
\ No newline at end of file
index 8ffa925f647491e193528b7498aabd845e4ca13f..16244b7e3cd18c68316b5b36fa037a2ff9c8f97b 100644 (file)
@@ -44,7 +44,7 @@
 \vspace*{1cm}
 {\large Generated by Doxygen 1.7.3}\\
 \vspace*{0.5cm}
-{\small Fri Mar 23 2012 11:12:03}\\
+{\small Fri Mar 23 2012 12:45:04}\\
 \end{center}
 \end{titlepage}
 \clearemptydoublepage
index 3593d1a9679383bd14816c948a1f60e636c60729..f54fdf8948945560d01265290560a841b73a4716 100644 (file)
@@ -27,9 +27,9 @@ Include dependency graph for sll.c:\nopagebreak
 \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 
+\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 
+\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{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8c_afd494f171c24981f0d7a007841f21cfe}{sll\_\-delete} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, int index, int free\_\-contents)
@@ -54,6 +54,8 @@ unsigned int \hyperlink{sll_8c_af5f6589df6d0ef48ed6f57ac5527ddfe}{sll\_\-length}
 
 Finds and returns the last node in the supplied linked list. 
 
+This function returns a pointer to the last node in the given linked list.
+
 
 \begin{DoxyParams}{Parameters}
 {\em list} & The linked list to search.\\
@@ -92,13 +94,13 @@ Here is the caller graph for this function:\nopagebreak
 
 Deletes a node from the supplied list. 
 
-Deletes the node found at the supplied index from the supplied list and frees the memory used by the node and its contents.
+This function traverses the list to the desired index and frees the memory allocated for that node. If the deleted node has a child then the child is reattached to the deleted node's parent. If free\_\-contents is passed a non-\/zero value then the node's contents pointer is also freed.
 
 
 \begin{DoxyParams}{Parameters}
-{\em list} & \\
+{\em list} & The list to operate on. \\
 \hline
-{\em index} & \\
+{\em index} & The index of the node to delete. \\
 \hline
 {\em free\_\-contents} & Whether or not to also free the contents of the node.\\
 \hline
@@ -135,7 +137,7 @@ Here is the call graph for this function:\nopagebreak
 
 Frees all memory used by a linked list. 
 
-Loops through the supplied list and frees all nodes. Also frees contents if free\_\-contents is passed TRUE. This is to avoid trying to free memory allocated on the stack.
+This function loops through the supplied list and frees all nodes. Also frees contents if free\_\-contents is passed a non-\/zero value.
 
 
 \begin{DoxyParams}{Parameters}
@@ -161,6 +163,8 @@ Definition at line 119 of file sll.c.
 
 Finds and returns the first node in the supplied linked list. 
 
+This function returns a pointer to the first node in the given linked list.
+
 
 \begin{DoxyParams}{Parameters}
 {\em list} & The linked list to search.\\
@@ -187,7 +191,7 @@ Definition at line 38 of file sll.c.
 
 Return the node at the specified index in a linked list. 
 
-Loops through the linked list and returns the node in the list at the specified index. Returns NULL if the index is out of range.
+This function loops through the linked list and returns the node in the list at the specified index. Returns NULL if the index is out of range.
 
 
 \begin{DoxyParams}{Parameters}
@@ -229,13 +233,15 @@ Here is the caller graph for this function:\nopagebreak
 
 Inserts a new node in a linked list at the specified index. 
 
+This function traverses the list to the desired index and inserts a new node with the given contents at that position. The node previously at the desired index becomes the child of the new node.
+
 
 \begin{DoxyParams}{Parameters}
-{\em list} & \\
+{\em list} & The list to operate on. \\
 \hline
-{\em index} & \\
+{\em index} & The index where the new node will be inserted. \\
 \hline
-{\em contents} & \\
+{\em contents} & The contents of the new node.\\
 \hline
 \end{DoxyParams}
 \begin{DoxyReturn}{Returns}
@@ -269,7 +275,7 @@ Here is the call graph for this function:\nopagebreak
 
 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.
+This function loops through the supplied list and returns a count of the number of elements contained in the list.
 
 
 \begin{DoxyParams}{Parameters}
@@ -296,7 +302,7 @@ Definition at line 134 of file sll.c.
 
 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.
+This function allocates a new node and populates the node contents with the supplied contents pointer.
 
 
 \begin{DoxyParams}{Parameters}
@@ -332,20 +338,6 @@ Here is the caller graph for this function:\nopagebreak
 \label{sll_8c_af72e93329186ac936d2bf6f544aa1f6b}
 
 
-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_8c_a1588e5a1f90852ee48403d5313d64269}{
@@ -359,20 +351,6 @@ Definition at line 80 of file sll.c.
 \label{sll_8c_a1588e5a1f90852ee48403d5313d64269}
 
 
-Removes and returns a pointer to the first 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 84 of file sll.c.
 
 \hypertarget{sll_8c_a19ad0a86a87451a3ab68ad6d18c3e3e0}{
@@ -389,11 +367,13 @@ Definition at line 84 of file sll.c.
 
 Adds a new node to the end of an existing linked list. 
 
+This function creates a new node and pushes it to the end of the given list. The newly created node becomes the new tail of the list.
+
 
 \begin{DoxyParams}{Parameters}
-{\em list} & \\
+{\em list} & The list to operate on. \\
 \hline
-{\em contents} & \\
+{\em contents} & The contents of the new node.\\
 \hline
 \end{DoxyParams}
 \begin{DoxyReturn}{Returns}
@@ -428,11 +408,13 @@ Here is the call graph for this function:\nopagebreak
 
 Adds a new node to the front of an existing linked list. 
 
+This function creates a new node and pushes it to the beginning of the given list. The newly created node becomes the new head of the list.
+
 
 \begin{DoxyParams}{Parameters}
-{\em list} & \\
+{\em list} & The list to operate on. \\
 \hline
-{\em contents} & \\
+{\em contents} & The contents of the new node.\\
 \hline
 \end{DoxyParams}
 \begin{DoxyReturn}{Returns}
index 3adff5ffc2cdee0da0f4d2c1aca8b4a19426d5d1..1cb0e3873658c33a2fe322e538902f0607216458 100644 (file)
@@ -30,14 +30,14 @@ typedef struct \hyperlink{structsll__node}{sll\_\-node} \hyperlink{sll_8h_a168d6
 \begin{DoxyCompactList}\small\item\em Finds and returns the last node in the supplied linked list. \item\end{DoxyCompactList}\item 
 \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{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)
+\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 
+void \hyperlink{sll_8h_a6702f6f18b540bd21165295eb3ca5c25}{sll\_\-pop\_\-front} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, int free\_\-contents)
 \begin{DoxyCompactList}\small\item\em Removes and returns a pointer to the first element of the list. \item\end{DoxyCompactList}\item 
+void \hyperlink{sll_8h_a58add98a437335c8f927344215a40d11}{sll\_\-pop\_\-back} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, int free\_\-contents)
+\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_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{structsll__node}{sll\_\-node} $\ast$ \hyperlink{sll_8h_afd494f171c24981f0d7a007841f21cfe}{sll\_\-delete} (\hyperlink{structsll__node}{sll\_\-node} $\ast$list, int index, int free\_\-contents)
@@ -74,6 +74,8 @@ A linked list node.
 
 Finds and returns the last node in the supplied linked list. 
 
+This function returns a pointer to the last node in the given linked list.
+
 
 \begin{DoxyParams}{Parameters}
 {\em list} & The linked list to search.\\
@@ -112,13 +114,13 @@ Here is the caller graph for this function:\nopagebreak
 
 Deletes a node from the supplied list. 
 
-Deletes the node found at the supplied index from the supplied list and frees the memory used by the node and its contents.
+This function traverses the list to the desired index and frees the memory allocated for that node. If the deleted node has a child then the child is reattached to the deleted node's parent. If free\_\-contents is passed a non-\/zero value then the node's contents pointer is also freed.
 
 
 \begin{DoxyParams}{Parameters}
-{\em list} & \\
+{\em list} & The list to operate on. \\
 \hline
-{\em index} & \\
+{\em index} & The index of the node to delete. \\
 \hline
 {\em free\_\-contents} & Whether or not to also free the contents of the node.\\
 \hline
@@ -155,7 +157,7 @@ Here is the call graph for this function:\nopagebreak
 
 Frees all memory used by a linked list. 
 
-Loops through the supplied list and frees all nodes. Also frees contents if free\_\-contents is passed TRUE. This is to avoid trying to free memory allocated on the stack.
+This function loops through the supplied list and frees all nodes. Also frees contents if free\_\-contents is passed a non-\/zero value.
 
 
 \begin{DoxyParams}{Parameters}
@@ -181,6 +183,8 @@ Definition at line 119 of file sll.c.
 
 Finds and returns the first node in the supplied linked list. 
 
+This function returns a pointer to the first node in the given linked list.
+
 
 \begin{DoxyParams}{Parameters}
 {\em list} & The linked list to search.\\
@@ -207,7 +211,7 @@ Definition at line 38 of file sll.c.
 
 Return the node at the specified index in a linked list. 
 
-Loops through the linked list and returns the node in the list at the specified index. Returns NULL if the index is out of range.
+This function loops through the linked list and returns the node in the list at the specified index. Returns NULL if the index is out of range.
 
 
 \begin{DoxyParams}{Parameters}
@@ -249,13 +253,15 @@ Here is the caller graph for this function:\nopagebreak
 
 Inserts a new node in a linked list at the specified index. 
 
+This function traverses the list to the desired index and inserts a new node with the given contents at that position. The node previously at the desired index becomes the child of the new node.
+
 
 \begin{DoxyParams}{Parameters}
-{\em list} & \\
+{\em list} & The list to operate on. \\
 \hline
-{\em index} & \\
+{\em index} & The index where the new node will be inserted. \\
 \hline
-{\em contents} & \\
+{\em contents} & The contents of the new node.\\
 \hline
 \end{DoxyParams}
 \begin{DoxyReturn}{Returns}
@@ -289,7 +295,7 @@ Here is the call graph for this function:\nopagebreak
 
 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.
+This function loops through the supplied list and returns a count of the number of elements contained in the list.
 
 
 \begin{DoxyParams}{Parameters}
@@ -316,7 +322,7 @@ Definition at line 134 of file sll.c.
 
 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.
+This function allocates a new node and populates the node contents with the supplied contents pointer.
 
 
 \begin{DoxyParams}{Parameters}
@@ -341,60 +347,58 @@ Here is the caller graph for this function:\nopagebreak
 \end{figure}
 
 
-\hypertarget{sll_8h_af72e93329186ac936d2bf6f544aa1f6b}{
+\hypertarget{sll_8h_a58add98a437335c8f927344215a40d11}{
 \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 (
+\subsubsection[{sll\_\-pop\_\-back}]{\setlength{\rightskip}{0pt plus 5cm}void sll\_\-pop\_\-back (
 \begin{DoxyParamCaption}
-\item[{{\bf sll\_\-node} $\ast$}]{list}
+\item[{{\bf sll\_\-node} $\ast$}]{list, }
+\item[{int}]{free\_\-contents}
 \end{DoxyParamCaption}
 )}}
-\label{sll_8h_af72e93329186ac936d2bf6f544aa1f6b}
+\label{sll_8h_a58add98a437335c8f927344215a40d11}
 
 
 Removes and returns a pointer to the last element of the list. 
 
+This function removes the last node from the list and frees it's associated memory. If free\_\-contents is passed a non-\/zero value then it's contents pointer is also freed. The second to last node in the list becomes the new tail of the list.
+
 
 \begin{DoxyParams}{Parameters}
-{\em list} & \\
+{\em list} & The list to operate on. \\
 \hline
-{\em contents} & \\
+{\em free\_\-contents} & Determines whether to free the contents pointer.\\
 \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}{
+\hypertarget{sll_8h_a6702f6f18b540bd21165295eb3ca5c25}{
 \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 (
+\subsubsection[{sll\_\-pop\_\-front}]{\setlength{\rightskip}{0pt plus 5cm}void sll\_\-pop\_\-front (
 \begin{DoxyParamCaption}
-\item[{{\bf sll\_\-node} $\ast$}]{list}
+\item[{{\bf sll\_\-node} $\ast$}]{list, }
+\item[{int}]{free\_\-contents}
 \end{DoxyParamCaption}
 )}}
-\label{sll_8h_a1588e5a1f90852ee48403d5313d64269}
+\label{sll_8h_a6702f6f18b540bd21165295eb3ca5c25}
 
 
 Removes and returns a pointer to the first element of the list. 
 
+This function removes the first node from the list and frees it's associated memory. If free\_\-contents is passed a non-\/zero value then it's contents pointer is also freed. The second node in the list becomes the new head of the list.
+
 
 \begin{DoxyParams}{Parameters}
-{\em list} & \\
+{\em list} & The lsit to operate on. \\
 \hline
-{\em contents} & \\
+{\em free\_\-contents} & Determines whether to free the contents pointer.\\
 \hline
 \end{DoxyParams}
 \begin{DoxyReturn}{Returns}
 Pointer to the newly added node. 
 \end{DoxyReturn}
-
-
-Definition at line 84 of file sll.c.
-
 \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}}
@@ -409,11 +413,13 @@ Definition at line 84 of file sll.c.
 
 Adds a new node to the end of an existing linked list. 
 
+This function creates a new node and pushes it to the end of the given list. The newly created node becomes the new tail of the list.
+
 
 \begin{DoxyParams}{Parameters}
-{\em list} & \\
+{\em list} & The list to operate on. \\
 \hline
-{\em contents} & \\
+{\em contents} & The contents of the new node.\\
 \hline
 \end{DoxyParams}
 \begin{DoxyReturn}{Returns}
@@ -448,11 +454,13 @@ Here is the call graph for this function:\nopagebreak
 
 Adds a new node to the front of an existing linked list. 
 
+This function creates a new node and pushes it to the beginning of the given list. The newly created node becomes the new head of the list.
+
 
 \begin{DoxyParams}{Parameters}
-{\em list} & \\
+{\em list} & The list to operate on. \\
 \hline
-{\em contents} & \\
+{\em contents} & The contents of the new node.\\
 \hline
 \end{DoxyParams}
 \begin{DoxyReturn}{Returns}
index 97f4a71dc765b111fbb9c9021b832b930c0160a0..c5201806a2f3a9fa5c2a36b53e7436426cb2bc9e 100644 (file)
@@ -13,8 +13,7 @@ A hash table.
 
 
 
-Collaboration diagram for ht\_\-table:
-\nopagebreak
+Collaboration diagram for ht\_\-table:\nopagebreak
 \begin{figure}[H]
 \begin{center}
 \leavevmode
index f3b3e0288716111149efe45df70f2b09792ceacf..c71e672f5f996fe05e72d88ec09e13ba2ba2e9b7 100644 (file)
@@ -52,7 +52,7 @@ ht_table* ht_new(unsigned int size, ht_hash_func fn)
     return table;
 }
 
-void ht_free(ht_table* table)
+void ht_free(ht_table* table, int free_key, int free_value)
 {
     int i = 0;
     for (i = 0; i < table->size; i++)
@@ -70,7 +70,7 @@ void ht_free(ht_table* table)
     }
 }
 
-int ht_put(ht_table* table, void* key, void* val)
+void ht_put(ht_table* table, void* key, void* val)
 {
     unsigned int index = table->hash_func( key ) % table->size;
     ht_node* cur = table->table[index];
@@ -103,10 +103,9 @@ int ht_put(ht_table* table, void* key, void* val)
             table->table[ index ] = node;
         }
     }
-    return 1;
 }
 
-void* ht_get(ht_table* table, char* key)
+void* ht_get(ht_table* table, void* key)
 {
     void* ret = NULL;
     unsigned int index= table->hash_func( key ) % table->size;
@@ -123,12 +122,12 @@ void* ht_get(ht_table* table, char* key)
     return ret;
 }
 
-unsigned int ht_delete(ht_table* table, char* key)
+void ht_delete(ht_table* table, void* key, int free_key, int free_value)
 {
     return 0;
 }
 
-unsigned int ht_resize(ht_table* table, unsigned int size)
+ht_table* ht_resize(ht_table* table, unsigned int size)
 {
     return 0;
 }
index c7ed669ccbb8af8b45b2e39191dbfb31286375ec..f0bcf11561435912644df9f4c349c85c4db9475b 100644 (file)
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *****************************************************************************/
-#ifndef HASHTABLE_H
-#define HASHTABLE_H
+#ifndef HT_H
+#define HT_H
 
 //! Hash function for hashing keys in a hash table
 typedef unsigned int (*ht_hash_func) (void*);
 
 //! A node in a hash table.
-typedef struct node
+typedef struct ht_node
 {
     //! Pointer to the key
     void* key;
@@ -55,15 +55,22 @@ typedef struct
 /**
  * @brief Takes a string key value and returns it's hashed value.
  *
- * @param key    Pointer to the string to hash.
+ * This function takes a pointer to a string and returns a hash value based on
+ * the contents of the string.
+ *
+ * @param key Pointer to the string to hash.
  *
  * @return The hashed value of the key.
  **/
 unsigned int ht_hash_string(void* key);
 
 /**
- * @brief Creates a new hash table of the given size using the provided hash function
- * or the built-in string hashing function otherwise.
+ * @brief Creates a new hash table
+ *
+ * This fucntion creates a new empty hash table with an internal lookup table
+ * of the given size and the desired hash function. The hash function will be
+ * used for insertion, deletion, and lookup of elements within the table. If
+ * the hash function pointer is null then ht_hash_string is used.
  *
  * @param size The size of the table to use for storing data.
  * @param fn   The function to use for hasing keys.
@@ -75,6 +82,10 @@ ht_table* ht_new(unsigned int size, ht_hash_func fn);
 /**
  * @brief Frees all memory used by the provided hash table.
  *
+ * This function frees all memory allocated for the given table. If free_key or
+ * free_value are non-zero values then the key or value pointers are freed
+ * respectively.
+ *
  * @param table      The table to be freed.
  * @param free_key   Determines whether the key pointers will be freed.
  * @param free_value Determines whether the value pointers will be freed.
@@ -84,25 +95,42 @@ void ht_free(ht_table* table, int free_key, int free_value);
 /**
  * @brief Inserts a key/value pair into the provided table.
  *
- * @param table The table to be freed.
- * @param key   The key for the associated value.
- * @param val   The value to be associated with the key.
+ * This function inserts a new entry into the provided table containing the
+ * provided key and value pointers. The entry is placed in the table by hashing
+ * the key with the provided table's hash function. If an entry with an
+ * identical key exists, then the value pointer for that entry is changed to
+ * the provided value pointer. If free_value is a non-zero value then the old
+ * value pointer is also freed.
+ *
+ * @param table      The table to be freed.
+ * @param key        The key for the associated value.
+ * @param val        The value to be associated with the key.
+ * @param free_value Determines whether or not to free the old value pointer.
  **/
-void ht_put(ht_table* table, void* key, void* val);
+void ht_insert(ht_table* table, void* key, void* val);
 
 /**
  * @brief Retrieves a value from the provided table.
  *
+ * This function looks up an entry in the table by hashing the key with the
+ * table's hash function. It then returns the pointer to the value of the found
+ * entry or a null pointer if no entry was found.
+ *
  * @param table The table in which to find the associated value.
  * @param key   The key to lookup.
  *
  * @return A pointer to the value associated with the provided key.
  **/
-void* ht_get(ht_table* table, void* key);
+void* ht_find(ht_table* table, void* key);
 
 /**
  * @brief Deletes a key/value pair from the provided hash table.
  *
+ * This function looks up an entry in the table by hashing the key with the
+ * table's hash function. If an entry is found then the memory allocated for
+ * the entry is freed. If free_key or free_value are non-zero values then the
+ * key or value pointers are freed respectively.
+ *
  * @param table      The table from which the key/value pait will be deleted.
  * @param key        The key for the key/value pair to be deleted.
  * @param free_key   Determines whether the key pointer will be freed.
@@ -113,6 +141,12 @@ void ht_delete(ht_table* table, void* key, int free_key, int free_value);
 /**
  * @brief Resizes the underlying table used for storing key/value pairs.
  *
+ * This function allocates a new internal lookup table of the given size to
+ * replace the internal table for the provided hash table. After the new talbe
+ * is created, all entries from the old table are rehahsed and inserted into
+ * the new lookup table. The new lookup table then replaces the old lookup
+ * table and the old lookup table is freed.
+ *
  * @param table The table to be resized.
  * @param size  The new size for the table.
  *
index decbf3d68e6ccdcdbc6c94695321e3dad4a5098a..1a9b072a79e2e9eed44d1aacf4afe43c56bc4601 100644 (file)
@@ -27,9 +27,6 @@
 #include "sll.h"
 #include <stdlib.h>
 
-/******************************************************************************
- * Public Functions
- ******************************************************************************/
 sll_node* sll_new( void* contents )
 {
     sll_node* list = (sll_node*)malloc( sizeof(sll_node) );
@@ -38,7 +35,11 @@ sll_node* sll_new( void* contents )
     return list;
 }
 
-sll_node* sll_last( sll_node* list )
+sll_node* sll_front( sll_node* list )
+{
+}
+
+sll_node* sll_back( sll_node* list )
 {
     sll_node* node = list;
     while((node != NULL) && (node->next != NULL))
@@ -48,7 +49,7 @@ sll_node* sll_last( sll_node* list )
     return node;
 }
 
-sll_node* sll_get( sll_node* list, int index )
+sll_node* sll_index( sll_node* list, int index )
 {
     int current = 0;
     sll_node* node = list;
@@ -66,16 +67,28 @@ sll_node* sll_get( sll_node* list, int index )
     return indexed_node;
 }
 
-sll_node* sll_add( sll_node* list, void* contents )
+sll_node* sll_push_back( sll_node* list, void* contents )
 {
-    sll_node* node = sll_last( list );
+    sll_node* node = sll_back( list );
     node->next = sll_new( contents );
 }
 
+sll_node* sll_push_front( sll_node* list, void* contents )
+{
+}
+
+sll_node* sll_pop_back( sll_node* list )
+{
+}
+
+sll_node* sll_pop_front( sll_node* list )
+{
+}
+
 sll_node* sll_insert( sll_node* list, int index, void* contents )
 {
     int req_index = ((index-1) < 0) ? 0 : index-1;
-    sll_node* node = sll_get( list, req_index );
+    sll_node* node = sll_index( list, req_index );
     if(node != NULL)
     {
         sll_node* next_next = node->next;
@@ -88,7 +101,7 @@ sll_node* sll_insert( sll_node* list, int index, void* contents )
 
 sll_node* sll_delete( sll_node* list, int index, int free_contents)
 {
-    sll_node* node = sll_get( list, (index-1));
+    sll_node* node = sll_index( list, (index-1));
     if((node != NULL) && (node->next != NULL))
     {
         sll_node* node_to_delete = node->next;
index 4b1c88096584e622428c1647377e009d5b0d20df..e29d71b9147ccb2d737bb6066d4776ba9c5c8170 100644 (file)
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *****************************************************************************/
-#ifndef LINKED_LIST_H
-#define LINKED_LIST_H
+#ifndef SLL_H
+#define SLL_H
 
-typedef struct node
+//! A linked list node.
+typedef struct sll_node
 {
+    //! Pointer to the contents the node
     void* contents;
-    struct node* next;
+    //! Pointer to next node in the list.
+    struct sll_node* next;
 } sll_node;
 
 /**
- * @brief   Creates a new linked list node with the supplied value.
+ * @brief Creates a new linked list node with the supplied value.
  *
- * Allocates a new node on the heap and populates the node contents with the
+ * This function allocates a new node and populates the node contents with the
  * supplied contents pointer.
  *
- * @param   contents    The contents of the newly created node.
+ * @param contents The contents of the newly created node.
  *
- * @return  A pointer to the newly created node.
- * */
+ * @return A pointer to the newly created node.
+ **/
 sll_node* sll_new( void* contents );
 
 /**
- * @brief   Finds and returns the last node in the supplied linked list.
+ * @brief Finds and returns the first node in the supplied linked list.
+ *
+ * This function returns a pointer to the first node in the given linked list.
+ *
+ * @param list The linked list to search.
+ *
+ * @return Pointer to the last node in the supplied list.
+ **/
+sll_node* sll_front(sll_node* list);
+
+/**
+ * @brief Finds and returns the last node in the supplied linked list.
+ *
+ * This function returns a pointer to the last node in the given linked list.
  *
- * @param   list    The linked list to search.
+ * @param list The linked list to search.
  *
- * @return  Pointer to the last node in the supplied list.
- * */
-sll_node* sll_last(sll_node* list);
+ * @return Pointer to the last node in the supplied list.
+ **/
+sll_node* sll_back(sll_node* list);
 
 /**
  * @brief   Return the node at the specified index in a linked list.
  *
- * Loops through the linked list and returns the node in the list at the
- * specified index. Returns NULL if the index is out of range.
+ * This function loops through the linked list and returns the node in the list
+ * at the specified index. Returns NULL if the index is out of range.
  *
- * @param   list    The list to search for the supplied index.
- * @param   index   The index of the node to return.
+ * @param list  The list to search for the supplied index.
+ * @param index The index of the node to return.
  *
- * @return  A pointer to the node and the supplied index, NULL if out of range.
- * */
-sll_node* sll_get(sll_node* list, int index);
+ * @return A pointer to the node and the supplied index, NULL if out of range.
+ **/
+sll_node* sll_index(sll_node* list, int index);
 
 /**
- * @brief   Adds a new node to an existing linked list.
+ * @brief Adds a new node to the front of an existing linked list.
  *
- * @param   list
- * @param   contents
+ * This function creates a new node and pushes it to the beginning of the given
+ * list. The newly created node becomes the new head of the list.
+ *
+ * @param list     The list to operate on.
+ * @param contents The contents of the new node.
  *
  * @return Pointer to the newly added node.
- * */
-sll_node* sll_add( sll_node* list, void* contents );
+ **/
+sll_node* sll_push_front( sll_node* list, void* contents );
+
+/**
+ * @brief Adds a new node to the end of an existing linked list.
+ *
+ * This function creates a new node and pushes it to the end of the given list.
+ * The newly created node becomes the new tail of the list.
+ *
+ * @param list     The list to operate on.
+ * @param contents The contents of the new node.
+ *
+ * @return Pointer to the newly added node.
+ **/
+sll_node* sll_push_back( sll_node* list, void* contents );
 
 /**
- * @brief   Inserts a new node in a linked list at the specified index.
+ * @brief Removes and returns a pointer to the first element of the list.
  *
- * @param   list
- * @param   index
- * @param   contents
+ * This function removes the first node from the list and frees it's associated
+ * memory. If free_contents is passed a non-zero value then it's contents
+ * pointer is also freed. The second node in the list becomes the new head of
+ * the list.
  *
- * @return  Pointer to the newly inserted node, NULL if index is out of range.
- * */
+ * @param list          The lsit to operate on.
+ * @param free_contents Determines whether to free the contents pointer.
+ *
+ * @return Pointer to the newly added node.
+ **/
+void sll_pop_front( sll_node* list, int free_contents );
+
+/**
+ * @brief Removes and returns a pointer to the last element of the list.
+ *
+ * This function removes the last node from the list and frees it's associated
+ * memory. If free_contents is passed a non-zero value then it's contents
+ * pointer is also freed. The second to last node in the list becomes the new
+ * tail of the list.
+ *
+ * @param list          The list to operate on.
+ * @param free_contents Determines whether to free the contents pointer.
+ *
+ * @return Pointer to the newly added node.
+ **/
+void sll_pop_back( sll_node* list, int free_contents );
+
+/**
+ * @brief Inserts a new node in a linked list at the specified index.
+ *
+ * This function traverses the list to the desired index and inserts a new node
+ * with the given contents at that position. The node previously at the desired
+ * index becomes the child of the new node.
+ *
+ * @param list     The list to operate on.
+ * @param index    The index where the new node will be inserted.
+ * @param contents The contents of the new node.
+ *
+ * @return Pointer to the newly inserted node, NULL if index is out of range.
+ **/
 sll_node* sll_insert( sll_node* list, int index, void* contents);
 
 /**
- * @brief   Deletes a node from the supplied list.
+ * @brief Deletes a node from the supplied list.
  *
- * Deletes the node found at the supplied index from the supplied list and frees
- * the memory used by the node and its contents.
+ * This function traverses the list to the desired index and frees the memory
+ * allocated for that node. If the deleted node has a child then the child is
+ * reattached to the deleted node's parent. If free_contents is passed a
+ * non-zero value then the node's contents pointer is also freed.
  *
- * @param   list
- * @param   index
- * @param   free_contents Whether or not to also free the contents of the node.
+ * @param list          The list to operate on.
+ * @param index         The index of the node to delete.
+ * @param free_contents Whether or not to also free the contents of the node.
  *
  * @return Pointer to the node that is now at the supplied index.
- * */
+ **/
 sll_node* sll_delete( sll_node* list, int index, int free_contents);
 
 /**
- * @brief   Frees all memory used by a linked list.
+ * @brief Frees all memory used by a linked list.
  *
- * Loops through the supplied list and frees all nodes. Also frees contents if
- * free_contents is passed TRUE. This is to avoid trying to free memory
- * allocated on the stack.
+ * This function loops through the supplied list and frees all nodes.
+ * Also frees contents if free_contents is passed a non-zero value.
  *
- * @param   list          The list to be freed.
- * @param   free_contents Whether or not to also free the contents of each node.
- * */
+ * @param list          The list to be freed.
+ * @param free_contents Whether or not to also free the contents of each node.
+ **/
 void sll_free( sll_node* list, int free_contents);
 
 /**
  * @brief 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.
+ * This function loops through the supplied list and returns a count of the
+ * number of elements contained in the list.
  *
- * @param list        The list to be counted.
+ * @param list The list to be counted.
  *
  * @return The number of elements in the list.
  **/
index 7f6edcb0dae7770d1e3aa385f6a21cb3e140c29e..ab43b2d964e0c0ffdc0133f69d4e8284f0b18c74 100644 (file)
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *****************************************************************************/
+#include "bt.h"
+
+bt_tree* bt_new(bt_compare_func compare)
+{
+
+}
+
+void bt_free(bt_tree* tree, int free_contents)
+{
+
+}
+
+int bt_compare_ptr(void* obj1, void* obj2)
+{
+
+}
+
+void bt_insert(bt_tree* tree, void* data)
+{
+
+}
+
+void bt_delete(bt_tree* tree, void* data)
+{
+
+}
+
+void* bt_find(bt_tree* tree, void* data)
+{
+
+}
 
index 7f6edcb0dae7770d1e3aa385f6a21cb3e140c29e..3789c7febee7ce929938d2a0931ea0b8514933b0 100644 (file)
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *****************************************************************************/
+#ifndef BT_H
+#define BT_H
 
+//! A function pointer for a comparison function.
+typedef int (* bt_compare_func) (void*,void*);
+
+//! A binary tree node.
+typedef struct bt_node
+{
+    //! The contents of the tree node.
+    void* contents;
+    //! The left child of the tree node.
+    struct bt_node* left;
+    //! the right child of the tree node.
+    struct bt_node* right;
+} bt_node;
+
+//! A binary tree
+typedef struct bt_tree
+{
+    //! The root of the binary tree
+    bt_node* root;
+    //! The function used to compare data
+    bt_compare_func compare;
+} bt_tree;
+
+/**
+ * @brief 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.
+ *
+ * @param compare The function to use for comparing items in the tree.
+ *
+ * @return Pointer to the newly created tree.
+ **/
+bt_tree* bt_new(bt_compare_func compare);
+
+/**
+ * @brief 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.
+ *
+ * @param tree          The tree to be freed.
+ * @param free_contents Determines whether the contents pointers will be freed.
+ **/
+void bt_free(bt_tree* tree, int free_contents);
+
+/**
+ * @brief 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.
+ *
+ * @param obj1 The first object to be compared.
+ * @param obj2 The second object to be compared.
+ *
+ * @return The result of the comparison.
+ **/
+int bt_compare_ptr(void* obj1, void* obj2);
+
+/**
+ * @brief 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.
+ *
+ * @param tree The tree in which the node will be inserted.
+ * @param data The data that the new node will contain.
+ **/
+void bt_insert(bt_tree* tree, void* data);
+
+/**
+ * @brief 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.
+ *
+ * @param tree          The tree from which the node will be deleted.
+ * @param data          The data to search for in the tree.
+ * @param free_contents Determines whether the contents pointer will be freed.
+ **/
+void bt_delete(bt_tree* tree, void* data, int free_contents);
+
+/**
+ * @brief 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.
+ *
+ * @param tree The tree to be searched.
+ * @param data The data to be searched for.
+ *
+ * @return Pointer to the found data.
+ **/
+void* bt_find(bt_tree* tree, void* data);
+
+#endif
diff --git a/tests/trees/binary/test_bt.c b/tests/trees/binary/test_bt.c
new file mode 100644 (file)
index 0000000..9938588
--- /dev/null
@@ -0,0 +1,16 @@
+#include "unity.h"
+
+// File Under Test
+#include "bt.h"
+
+void setUp()
+{
+}
+
+void tearDown()
+{
+}
+
+//-----------------------------------------------------------------------------
+
+