27.04.2009, 23:50 | #1 (permalink) |
Новичок
Регистрация: 27.04.2009
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите с задачений на С
Надо реализовать структуру данных хеш-массв на основе хеш-функции 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; }; |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|