⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 group__gdsl__hash.html

📁 一个通用的C语言实现的数据结构
💻 HTML
📖 第 1 页 / 共 5 页
字号:
      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"><a class="el" href="group__gdsl__hash.html#ge145ec3ea3d118dcc593ab7902162cd2">gdsl_hash_t</a> gdsl_hash_alloc           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const char *&nbsp;</td>          <td class="mdname" nowrap> <em>NAME</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap><a class="el" href="group__gdsl__types.html#g32a9b4e8b9665183c2741d28a5ced64f">gdsl_alloc_func_t</a>&nbsp;</td>          <td class="mdname" nowrap> <em>ALLOC_F</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap><a class="el" href="group__gdsl__types.html#g2c6b3f96b291b5b39d2799f93e350053">gdsl_free_func_t</a>&nbsp;</td>          <td class="mdname" nowrap> <em>FREE_F</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap><a class="el" href="group__gdsl__hash.html#g9198c4e32d387180450fa57d7e29515d">gdsl_key_func_t</a>&nbsp;</td>          <td class="mdname" nowrap> <em>KEY_F</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap><a class="el" href="group__gdsl__hash.html#gb53a567436929e68661a337d7c3b20a0">gdsl_hash_func_t</a>&nbsp;</td>          <td class="mdname" nowrap> <em>HASH_F</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>ushort&nbsp;</td>          <td class="mdname" nowrap> <em>INITIAL_ENTRIES_NB</em></td>        </tr>        <tr>          <td class="md"></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing="5" cellpadding="0" border="0">  <tr>    <td>      &nbsp;    </td>    <td><p>Create a new hashtable. <p>Allocate a new hashtable data structure which name is set to a copy of NAME. The new hashtable will contain initially INITIAL_ENTRIES_NB lists. This value could be (only) increased with <a class="el" href="group__gdsl__hash.html#g56acbd8af54ef98000d1749afbb28234">gdsl_hash_modify()</a> function. Until this function is called, then all H's lists entries have no size limit. The function pointers ALLOC_F and FREE_F could be used to respectively, alloc and free elements in the hashtable. The KEY_F function must provide a unique key associated to its argument. The HASH_F function must compute a hash code from its argument. These pointers could be set to NULL to use the default ones:<ul><li>the default ALLOC_F simply returns its argument</li><li>the default FREE_F does nothing</li><li>the default KEY_F simply returns its argument</li><li>the default HASH_F is <a class="el" href="group__gdsl__hash.html#gfb96675c3097a359e962bca36a11a528">gdsl_hash()</a> above</li></ul><p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( 1 ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>nothing. </dd></dl><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign="top"></td><td valign="top"><em>NAME</em>&nbsp;</td><td>The name of the new hashtable to create </td></tr>    <tr><td valign="top"></td><td valign="top"><em>ALLOC_F</em>&nbsp;</td><td>Function to alloc element when inserting it in the hashtable </td></tr>    <tr><td valign="top"></td><td valign="top"><em>FREE_F</em>&nbsp;</td><td>Function to free element when deleting it from the hashtable </td></tr>    <tr><td valign="top"></td><td valign="top"><em>KEY_F</em>&nbsp;</td><td>Function to get the key from an element </td></tr>    <tr><td valign="top"></td><td valign="top"><em>HASH_F</em>&nbsp;</td><td>Function used to compute the hash value. </td></tr>    <tr><td valign="top"></td><td valign="top"><em>INITIAL_ENTRIES_NB</em>&nbsp;</td><td>Initial number of entries of the hashtable </td></tr>  </table></dl><dl compact><dt><b>Returns:</b></dt><dd>the newly allocated hashtable in case of success. <p>NULL in case of insufficient memory. </dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__gdsl__hash.html#g3723a6cfb3338b7e312d3e2f161f0692">gdsl_hash_free()</a> <p><a class="el" href="group__gdsl__hash.html#gc047b5a4899747159dbaf44b39b7daeb">gdsl_hash_flush()</a> <p><a class="el" href="group__gdsl__hash.html#g98ae1fcdb6908b699056e131357d837b">gdsl_hash_insert()</a> <p><a class="el" href="group__gdsl__hash.html#g56acbd8af54ef98000d1749afbb28234">gdsl_hash_modify()</a> </dd></dl>    </td>  </tr></table><a class="anchor" name="g3723a6cfb3338b7e312d3e2f161f0692"></a><!-- doxytag: member="gdsl_hash.h::gdsl_hash_free" ref="g3723a6cfb3338b7e312d3e2f161f0692" args="(gdsl_hash_t H)" --><p><table class="mdTable" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top">void gdsl_hash_free           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="group__gdsl__hash.html#ge145ec3ea3d118dcc593ab7902162cd2">gdsl_hash_t</a>&nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>H</em>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap></td>        </tr>      </table>    </td>  </tr></table><table cellspacing="5" cellpadding="0" border="0">  <tr>    <td>      &nbsp;    </td>    <td><p>Destroy a hashtable. <p>Deallocate all the elements of the hashtable H by calling H's FREE_F function passed to <a class="el" href="group__gdsl__hash.html#ge19c5647d31f3d8f88b988e89609049c">gdsl_hash_alloc()</a>. The name of H is deallocated and H is deallocated itself too.<p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( |H| ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>H must be a valid gdsl_hash_t </dd></dl><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign="top"></td><td valign="top"><em>H</em>&nbsp;</td><td>The hashtable to destroy </td></tr>  </table></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__gdsl__hash.html#ge19c5647d31f3d8f88b988e89609049c">gdsl_hash_alloc()</a> <p><a class="el" href="group__gdsl__hash.html#gc047b5a4899747159dbaf44b39b7daeb">gdsl_hash_flush()</a> </dd></dl>    </td>  </tr></table><a class="anchor" name="gc047b5a4899747159dbaf44b39b7daeb"></a><!-- doxytag: member="gdsl_hash.h::gdsl_hash_flush" ref="gc047b5a4899747159dbaf44b39b7daeb" args="(gdsl_hash_t H)" --><p><table class="mdTable" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top">void gdsl_hash_flush           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="group__gdsl__hash.html#ge145ec3ea3d118dcc593ab7902162cd2">gdsl_hash_t</a>&nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>H</em>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap></td>        </tr>      </table>    </td>  </tr></table><table cellspacing="5" cellpadding="0" border="0">  <tr>    <td>      &nbsp;    </td>    <td><p>Flush a hashtable. <p>Deallocate all the elements of the hashtable H by calling H's FREE_F function passed to <a class="el" href="group__gdsl__hash.html#ge19c5647d31f3d8f88b988e89609049c">gdsl_hash_alloc()</a>. H is not deallocated itself and H's name is not modified.<p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( |H| ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>H must be a valid gdsl_hash_t </dd></dl><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign="top"></td><td valign="top"><em>H</em>&nbsp;</td><td>The hashtable to flush </td></tr>  </table></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__gdsl__hash.html#ge19c5647d31f3d8f88b988e89609049c">gdsl_hash_alloc()</a> <p><a class="el" href="group__gdsl__hash.html#g3723a6cfb3338b7e312d3e2f161f0692">gdsl_hash_free()</a> </dd></dl>    </td>  </tr></table><a class="anchor" name="g199e08c06af60e688d95244a023f406d"></a><!-- doxytag: member="gdsl_hash.h::gdsl_hash_get_name" ref="g199e08c06af60e688d95244a023f406d" args="(const gdsl_hash_t H)" --><p><table class="mdTable" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top">const char* gdsl_hash_get_name           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const <a class="el" href="group__gdsl__hash.html#ge145ec3ea3d118dcc593ab7902162cd2">gdsl_hash_t</a>&nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>H</em>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap></td>        </tr>      </table>    </td>  </tr></table><table cellspacing="5" cellpadding="0" border="0">  <tr>    <td>      &nbsp;    </td>    <td><p>Get the name of a hashtable. <p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( 1 ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>H must be a valid gdsl_hash_t </dd></dl><dl compact><dt><b>Postcondition:</b></dt><dd>The returned string MUST NOT be freed. </dd></dl><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign="top"></td><td valign="top"><em>H</em>&nbsp;</td><td>The hashtable to get the name from </td></tr>  </table></dl><dl compact><dt><b>Returns:</b></dt><dd>the name of the hashtable H. </dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__gdsl__hash.html#gc46d87b7312a26b985709a904a2f452e">gdsl_hash_set_name()</a> </dd></dl>    </td>  </tr></table><a class="anchor" name="gd87fd81a7853bdcfe2cc7fdd142556f0"></a><!-- doxytag: member="gdsl_hash.h::gdsl_hash_get_entries_number" ref="gd87fd81a7853bdcfe2cc7fdd142556f0" args="(const gdsl_hash_t H)" --><p><table class="mdTable" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top">ushort gdsl_hash_get_entries_number           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const <a class="el" href="group__gdsl__hash.html#ge145ec3ea3d118dcc593ab7902162cd2">gdsl_hash_t</a>&nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>H</em>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap></td>        </tr>      </table>    </td>  </tr></table><table cellspacing="5" cellpadding="0" border="0">  <tr>    <td>      &nbsp;    </td>    <td><p>Get the number of entries of a hashtable. <p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( 1 ) </dd></dl>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -