Worksheet 37: Hash Tables (Open Address Hashing) - Classes
Worksheet 37: Hash Tables (Open Address Hashing) - Classes
Worksheet 37: Hash Tables (Open Address Hashing) - Classes
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Worksheet</strong> <strong>37</strong>: <strong>Open</strong> <strong>Address</strong> <strong>Hash</strong> <strong>Tables</strong> Name:<br />
struct open<strong>Hash</strong>Table {<br />
EleType ** table;<br />
int tablesize;<br />
int count;<br />
};<br />
void init<strong>Open</strong><strong>Hash</strong>Table (struct open<strong>Hash</strong>Table * ht, int size) {<br />
int i;<br />
assert (size > 0);<br />
ht->table = (EleType **) malloc(size * sizeof(EleType *));<br />
assert(ht->table != 0);<br />
for (I = 0; I < size; i++) ht->table[i] = 0; /* initialize empty */<br />
ht->tablesize = size;<br />
ht->count = 0;<br />
}<br />
int open<strong>Hash</strong>TableSize (struct open<strong>Hash</strong>Table *ht) { return ht->count; }<br />
void open<strong>Hash</strong>TableAdd (struct open<strong>Hash</strong>Table * ht, EleType * newValue) {<br />
long int i = labs(HASH(newValue));<br />
if ((ht->count / (double) ht->tablesize) > 0.75) _resize<strong>Open</strong><strong>Hash</strong>Table(ht);<br />
ht->count++;<br />
}<br />
void open<strong>Hash</strong>TableBagContains (struct open<strong>Hash</strong>Table *ht, EleType * testValue) {<br />
long int i = labs(HASH(newValue));<br />
}<br />
An Active Learning Approach to Data Structures using C 3