Помогите с задачений на С
Помогите пожалуйста с задачей на С,
Надо реализовать структуру данных хеш-массв на основе хеш-функции CRC32.
Метод реализации коллизий: связный список.
Размер хеш-таблицы 4096 элементов.
протестировать хэш путем заполнения его строкам текста из файла. Вывести содержимое хеш-массива на стандартный вывод в читаемом виде(текст) и статистику возникновения коллизий при заполнении структуры.
Программа должна запускаться из командной строки и считывать имя файла для тестирования со стандартного вывода, выводить результат на стандартный вывод.
Вот собственно сама функция crc32
Помогите пожалуйста с задачей на С,
Надо реализовать структуру данных хеш-массв на основе хеш-функции CRC32.
Метод реализации коллизий: связный список.
Размер хеш-таблицы 4096 элементов.
протестировать хэш путем заполнения его строкам текста из файла. Вывести содержимое хеш-массива на стандартный вывод в читаемом виде(текст) и статистику возникновения коллизий при заполнении структуры.
Программа должна запускаться из командной строки и считывать имя файла для тестирования со стандартного вывода, выводить результат на стандартный вывод.
Вот собственно сама функция crc32
Код:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
system("PAUSE");
return 0;
}
unsigned long Crc32(unsigned char *buf, unsigned long len)
{
unsigned long crc_table[256];
unsigned long crc;
int i;
for (i = 0; i < 256; i++)
{
int j;
crc = i;
for (j = 0; j < 8; j++)
crc = crc & 1 ? (crc >> 1) ^ 0xEDB88320UL : crc >> 1;
crc_table[i] = crc;
};
crc = 0xFFFFFFFFUL;
while (len--)
crc = crc_table[(crc ^ *buf++) & 0xFF] ^ (crc >> 8);
return crc ^ 0xFFFFFFFFUL;
};