| |
| \begin{figure}[htbp] |
| { \scriptsize |
| \begin{verbatim} |
| 1 struct hash_table |
| 2 { |
| 3 long nbuckets; |
| 4 struct node **buckets; |
| 5 }; |
| 6 |
| 7 typedef struct node { |
| 8 unsigned long key; |
| 9 struct node *next; |
| 10 } node_t; |
| 11 |
| 12 int hash_search(struct hash_table *h, long key) |
| 13 { |
| 14 struct node *cur; |
| 15 |
| 16 cur = h->buckets[key % h->nbuckets]; |
| 17 while (cur != NULL) { |
| 18 if (cur->key >= key) { |
| 19 return (cur->key == key); |
| 20 } |
| 21 cur = cur->next; |
| 22 } |
| 23 return 0; |
| 24 } |
| \end{verbatim} |
| } |
| \caption{Sequential-Program Hash Table Search} |
| \label{fig:SMPdesign:Sequential-Program Hash Table Search} |
| \end{figure} |