#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define INDEXBOX 10
#define MAXNUM 7
void print_data(int* data, int maxnum) {
int i;
printf("\t");
for (i = 0; i < maxnum; i++) {
printf("[%2d]",data[i]);
}
printf("\n");
}
void create_table(int num, int* index) {
int tmp;
tmp = num % INDEXBOX;
while (1) {
if (index[tmp] == -1) {
index[tmp] = num;
break;
}
else {
tmp = (tmp + 1) % INDEXBOX;
}
}
}
int main() {
int i, index[INDEXBOX], data[MAXNUM];
srand((unsigned)time(NULL));
printf("原始数组值:\n");
for (i = 0; i < MAXNUM;i++) {
data[i] = rand() % 20 + 1;
}
for (i = 0; i < INDEXBOX;i++) {//清除hash
index[i] = -1;
}
print_data(data,MAXNUM);
printf("哈希表的内容:\n");
for (i = 0; i < MAXNUM; i++) {
create_table(data[i],index);
printf(" %2d =>",data[i]);
print_data(index,INDEXBOX);
}
printf("完成的hash表:\n");
print_data(index,INDEXBOX);
return 0;
}