document.open();document.writeln('<div onmouseover="document.getElementById(\'snipt-3714\').style.display = \'block\'; return false;" onmouseout="document.getElementById(\'snipt-3714\').style.display = \'none\'; return false;" style="position: relative;">');document.writeln('<div class="highlight"><pre style="-moz-border-radius: 5px; border-radius: 5px; -webkit-border-radius: 5px; margin: 0; display: block; font: 11px Monaco, monospace !important; padding: 15px; background-color: #1C1C1C; overflow: auto; color: #D0D0D0;"><span style="color: #6ab825; font-weight: normal">unsigned</span> <span style="color: #6ab825; font-weight: normal">int</span> <span style="color: #447fcf">jenkins_one_at_a_time_hash</span><span style="color: #d0d0d0">(</span><span style="color: #6ab825; font-weight: normal">void</span> <span style="color: #d0d0d0">*vkey)</span>');document.writeln('<span style="color: #d0d0d0">{</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">unsigned</span> <span style="color: #d0d0d0">hash</span> <span style="color: #d0d0d0">=</span> <span style="color: #3677a9">0</span><span style="color: #d0d0d0">;</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">size_t</span> <span style="color: #d0d0d0">i;</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">unsigned</span> <span style="color: #6ab825; font-weight: normal">char</span> <span style="color: #d0d0d0">*key;</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">int</span> <span style="color: #d0d0d0">key_len;</span>');document.writeln('');document.writeln('');document.writeln('    <span style="color: #d0d0d0">key</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">(</span><span style="color: #6ab825; font-weight: normal">unsigned</span> <span style="color: #6ab825; font-weight: normal">char</span> <span style="color: #d0d0d0">*)vkey;</span>');document.writeln('    ');document.writeln('    <span style="color: #d0d0d0">key_len</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">strlen(key);</span>');document.writeln('');document.writeln('    <span style="color: #6ab825; font-weight: normal">for</span> <span style="color: #d0d0d0">(i</span> <span style="color: #d0d0d0">=</span> <span style="color: #3677a9">0</span><span style="color: #d0d0d0">;</span> <span style="color: #d0d0d0">i</span> <span style="color: #d0d0d0">&lt;</span> <span style="color: #d0d0d0">key_len;</span> <span style="color: #d0d0d0">i++)</span> <span style="color: #d0d0d0">{</span>');document.writeln('        <span style="color: #d0d0d0">hash</span> <span style="color: #d0d0d0">+=</span> <span style="color: #d0d0d0">key[i];</span>');document.writeln('        <span style="color: #d0d0d0">hash</span> <span style="color: #d0d0d0">+=</span> <span style="color: #d0d0d0">(hash</span> <span style="color: #d0d0d0">&lt;&lt;</span> <span style="color: #3677a9">10</span><span style="color: #d0d0d0">);</span>');document.writeln('        <span style="color: #d0d0d0">hash</span> <span style="color: #d0d0d0">^=</span> <span style="color: #d0d0d0">(hash</span> <span style="color: #d0d0d0">&gt;&gt;</span> <span style="color: #3677a9">6</span><span style="color: #d0d0d0">);</span>');document.writeln('    <span style="color: #d0d0d0">}</span>');document.writeln('    <span style="color: #d0d0d0">hash</span> <span style="color: #d0d0d0">+=</span> <span style="color: #d0d0d0">(hash</span> <span style="color: #d0d0d0">&lt;&lt;</span> <span style="color: #3677a9">3</span><span style="color: #d0d0d0">);</span>');document.writeln('    <span style="color: #d0d0d0">hash</span> <span style="color: #d0d0d0">^=</span> <span style="color: #d0d0d0">(hash</span> <span style="color: #d0d0d0">&gt;&gt;</span> <span style="color: #3677a9">11</span><span style="color: #d0d0d0">);</span>');document.writeln('    <span style="color: #d0d0d0">hash</span> <span style="color: #d0d0d0">+=</span> <span style="color: #d0d0d0">(hash</span> <span style="color: #d0d0d0">&lt;&lt;</span> <span style="color: #3677a9">15</span><span style="color: #d0d0d0">);</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">return</span> <span style="color: #d0d0d0">hash;</span>');document.writeln('<span style="color: #d0d0d0">}</span>');document.writeln('');document.writeln('');document.writeln('<span style="color: #6ab825; font-weight: normal">int</span> <span style="color: #447fcf">scmp</span><span style="color: #d0d0d0">(</span><span style="color: #6ab825; font-weight: normal">const</span> <span style="color: #6ab825; font-weight: normal">void</span> <span style="color: #d0d0d0">*a1,</span> <span style="color: #6ab825; font-weight: normal">const</span> <span style="color: #6ab825; font-weight: normal">void</span> <span style="color: #d0d0d0">*a2)</span>');document.writeln('<span style="color: #d0d0d0">{</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">char</span> <span style="color: #d0d0d0">*s1,</span> <span style="color: #d0d0d0">*s2;</span>');document.writeln('    <span style="color: #d0d0d0">s1</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">(</span><span style="color: #6ab825; font-weight: normal">char</span> <span style="color: #d0d0d0">*)a1;</span>');document.writeln('    <span style="color: #d0d0d0">s2</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">(</span><span style="color: #6ab825; font-weight: normal">char</span> <span style="color: #d0d0d0">*)a2;</span>');document.writeln('');document.writeln('    <span style="color: #6ab825; font-weight: normal">if</span><span style="color: #d0d0d0">(strcmp(s1,</span> <span style="color: #d0d0d0">s2)</span> <span style="color: #d0d0d0">&lt;</span> <span style="color: #3677a9">0</span><span style="color: #d0d0d0">)</span> <span style="color: #6ab825; font-weight: normal">return</span> <span style="color: #d0d0d0">-</span><span style="color: #3677a9">1</span><span style="color: #d0d0d0">;</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">if</span><span style="color: #d0d0d0">(strcmp(s1,</span> <span style="color: #d0d0d0">s2)</span> <span style="color: #d0d0d0">==</span> <span style="color: #3677a9">0</span><span style="color: #d0d0d0">)</span> <span style="color: #6ab825; font-weight: normal">return</span> <span style="color: #3677a9">0</span><span style="color: #d0d0d0">;</span>');document.writeln('');document.writeln('    <span style="color: #6ab825; font-weight: normal">return</span> <span style="color: #3677a9">1</span><span style="color: #d0d0d0">;</span>');document.writeln('<span style="color: #d0d0d0">}</span>');document.writeln('');document.writeln('<span style="color: #6ab825; font-weight: normal">void</span> <span style="color: #447fcf">nulldes</span><span style="color: #d0d0d0">(</span><span style="color: #6ab825; font-weight: normal">void</span> <span style="color: #d0d0d0">*a)</span>');document.writeln('<span style="color: #d0d0d0">{</span>');document.writeln('    <span style="color: #d0d0d0">;</span>');document.writeln('<span style="color: #d0d0d0">}</span>');document.writeln('');document.writeln('<span style="color: #6ab825; font-weight: normal">void</span> <span style="color: #447fcf">destr_key</span><span style="color: #d0d0d0">(</span><span style="color: #6ab825; font-weight: normal">void</span> <span style="color: #d0d0d0">*s)</span>');document.writeln('<span style="color: #d0d0d0">{</span>');document.writeln('    <span style="color: #d0d0d0">free((</span><span style="color: #6ab825; font-weight: normal">char</span> <span style="color: #d0d0d0">*)s);</span>');document.writeln('<span style="color: #d0d0d0">}</span>');document.writeln('');document.writeln('');document.writeln('<span style="color: #6ab825; font-weight: normal">int</span> <span style="color: #447fcf">main</span><span style="color: #d0d0d0">()</span>');document.writeln('<span style="color: #d0d0d0">{</span>');document.writeln('    <span style="color: #d0d0d0">hash_table_t</span> <span style="color: #d0d0d0">*hash_table;</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">char</span> <span style="color: #d0d0d0">buffer[</span><span style="color: #3677a9">1024</span><span style="color: #d0d0d0">];</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">char</span> <span style="color: #d0d0d0">*nkey;</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">int</span> <span style="color: #d0d0d0">i,</span> <span style="color: #d0d0d0">r;</span>');document.writeln('');document.writeln('    <span style="color: #d0d0d0">hash_table</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">hash_create(jenkins_one_at_a_time_hash,</span>');document.writeln('                            <span style="color: #d0d0d0">scmp,</span>');document.writeln('                            <span style="color: #d0d0d0">destr_key,</span>');document.writeln('                            <span style="color: #d0d0d0">nulldes,</span>');document.writeln('                            <span style="color: #3677a9">500</span><span style="color: #d0d0d0">/</span><span style="color: #3677a9">2</span><span style="color: #d0d0d0">);</span>');document.writeln('');document.writeln('    <span style="color: #6ab825; font-weight: normal">for</span><span style="color: #d0d0d0">(i=</span><span style="color: #3677a9">0</span><span style="color: #d0d0d0">;</span> <span style="color: #d0d0d0">i&lt;</span><span style="color: #3677a9">500</span><span style="color: #d0d0d0">;</span> <span style="color: #d0d0d0">i++)</span>');document.writeln('    <span style="color: #d0d0d0">{</span>');document.writeln('        <span style="color: #d0d0d0">nkey</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">(</span><span style="color: #6ab825; font-weight: normal">char</span> <span style="color: #d0d0d0">*)malloc(</span><span style="color: #3677a9">33</span><span style="color: #d0d0d0">);</span>');document.writeln('        <span style="color: #d0d0d0">sprintf(nkey,</span> <span style="color: #ed9d13">&quot;%8d%8d%8d%8d&quot;</span><span style="color: #d0d0d0">,</span> <span style="color: #d0d0d0">i,</span> <span style="color: #d0d0d0">i+</span><span style="color: #3677a9">3</span><span style="color: #d0d0d0">,</span> <span style="color: #d0d0d0">i+</span><span style="color: #3677a9">11</span><span style="color: #d0d0d0">,</span> <span style="color: #d0d0d0">i+</span><span style="color: #3677a9">17</span><span style="color: #d0d0d0">);</span>');document.writeln('        <span style="color: #d0d0d0">hash_insert(hash_table,</span> <span style="color: #d0d0d0">nkey,</span> <span style="color: #24909d">NULL</span><span style="color: #d0d0d0">);</span>');document.writeln('    <span style="color: #d0d0d0">}</span>');document.writeln('');document.writeln('    <span style="color: #d0d0d0">srand(</span><span style="color: #3677a9">0</span><span style="color: #d0d0d0">);</span>');document.writeln('    ');document.writeln('    <span style="color: #6ab825; font-weight: normal">for</span><span style="color: #d0d0d0">(i=</span><span style="color: #3677a9">0</span><span style="color: #d0d0d0">;</span> <span style="color: #d0d0d0">i&lt;</span><span style="color: #3677a9">500</span><span style="color: #d0d0d0">;</span> <span style="color: #d0d0d0">i++)</span>');document.writeln('    <span style="color: #d0d0d0">{</span>');document.writeln('        <span style="color: #d0d0d0">r</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">rand()</span> <span style="color: #d0d0d0">%</span> <span style="color: #3677a9">600</span><span style="color: #d0d0d0">;</span>');document.writeln('        <span style="color: #d0d0d0">sprintf(buffer,</span> <span style="color: #ed9d13">&quot;%8d%8d%8d%8d&quot;</span><span style="color: #d0d0d0">,</span> <span style="color: #d0d0d0">r,</span> <span style="color: #d0d0d0">r+</span><span style="color: #3677a9">3</span><span style="color: #d0d0d0">,</span> <span style="color: #d0d0d0">r+</span><span style="color: #3677a9">11</span><span style="color: #d0d0d0">,</span> <span style="color: #d0d0d0">r+</span><span style="color: #3677a9">17</span><span style="color: #d0d0d0">);</span>');document.writeln('        <span style="color: #d0d0d0">hash_find_node(hash_table,</span> <span style="color: #d0d0d0">buffer);</span>');document.writeln('');document.writeln('    <span style="color: #d0d0d0">}</span>');document.writeln('    ');document.writeln('    <span style="color: #d0d0d0">hash_destroy(hash_table);</span>');document.writeln('');document.writeln('    <span style="color: #6ab825; font-weight: normal">return</span> <span style="color: #3677a9">0</span><span style="color: #d0d0d0">;</span>');document.writeln('<span style="color: #d0d0d0">}</span>');document.writeln('</pre></div>');document.writeln('');document.writeln('<div style="background-color: #111; color: #D0D0D0; float: right; padding: 5px 10px; -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; font: 11px Arial,Sans-Serif; display: none; position: absolute; bottom: 0; right: 0;" id="snipt-3714">code hosted by <a href="http://snipt.net/aguirrel/hash-example?key=ff95dfd84638b235a9041a4e57fc1ba6" style="color: #0084FF; text-decoration: none;">snipt.net</a></div>');document.writeln('</div>');document.close();