• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите с задачений на С

  • Автор темы Автор темы blake
  • Дата начала Дата начала

blake

Ученик
Регистрация
27 Апр 2009
Сообщения
4
Реакции
0
Баллы
0
Помогите с задачений на С

Помогите пожалуйста с задачей на С,
Надо реализовать структуру данных хеш-массв на основе хеш-функции 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;
};
 
Назад
Сверху