void
test_hashquad( void )
{
int i;
Pos p;
hash_table h;
element_type datas[100];
for ( i = 0; i < get_array_size( datas ); i++ ){
datas[i] = rand() % 1000;
}
h = initialize_table( 13 );
if ( h == NULL )
Error("Initialize error!");
for ( i = 0; i < get_array_size( datas ); i++ ){
insert( datas[i], h );
/* 在每次插入操作后检查是否需要rehash */
if ( need_rehash( h ) )
h = rehash( h );
}
p = find( 67, h );
if ( h->cells[p].info != legitimate ){
printf("/n/t key value 67 not in hash table!/n");
}else{
printf("/n/t key value 67 in hash table!/n");
}
p = find( datas[31], h );
if ( h->cells[p].info != legitimate ){
printf("/n/t key value %d not in hash table!/n",datas[31]);
}else{
printf("/n/t key value %d in hash table!/n",datas[31]);
}
i = i;
return;
}
/*********************************************************************************************************/
/* hashquad.h */
#ifndef _HASHQUAD_H_
#define _HASHQUAD_H_
typedef int element_type;
typedef unsigned int Index;
typedef Index Pos;
struct hash_tbl;
typedef struct hash_tbl *hash_table;
#endif