#include <stdio.h>
#include <stdlib.h>
int min = 0;
int maxsize = 10;
typedef struct hash
{
long long int *data;
} HashTable;
int Hash(long long int key)
{
return key % maxsize;
}
void Insert(HashTable *H, long long int key)
{
int i = 0;
int addr = Hash(key);
while (H->data[addr] != min)
{
i++;
addr = (Hash(key) + i * i);
}
H->data[addr] = key;
}
int main()
{
char a[100];
gets(a);
int i = 0;
char temp[100];
int run = 0;
HashTable H;
H.data = (long long int *)malloc(sizeof(long long int) * maxsize);
for (int k = 0; k < maxsize; k++)
H.data[k] = min;
while (a[i])
{
if (a[i] >= '0' && a[i] <= '9')
{
temp[run++] = a[i];
}
else if (a[i] == ',')
{
double b = atof(temp);
long long int c = (long long int)b;
Insert(&H, c);
for (int k = 0; k < 10; k++)
temp[k] = '\0';
run = 0;
}
i++;
}
double b = atof(temp);
long long int c = (long long int)b;
Insert(&H, c);
for(int k=0;k<maxsize-1;k++)
{
printf("%lld,",H.data[k]);
}
printf("%lld",H.data[maxsize-1]);
return 0;
}
数据结构第三次作业第三题(HASH)
最新推荐文章于 2023-03-29 22:14:43 发布