Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2012, 15:41   #1
Jirogirg
Пользователь
 
Регистрация: 13.05.2012
Сообщений: 30
По умолчанию Пример построения Хеш таблицы

Уважаемые! Прочитал про хэш таблицы в википедии, а также вообще статейки в интернете. Принцип кажется понятным - есть массив, в котором хранятся значения ключ и значение. Эээ ...всё)
Перед тем, как соершить какую-то функцию (добавление, удаление, поиск) нужно получить некий индекс, по которму в массиве найдётся нужная пара. Мой преподаватель сказал, что для этого можно использовать CRC32, код которого можно найти в Википедии. Надеюсь это он
Код:
uint_least32_t Crc32(unsigned char *buf, size_t len)
{
    uint_least32_t crc_table[256];
    uint_least32_t crc; int i, j;
 
    for (i = 0; i < 256; i++)
    {
        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;
}
Я не прошу ничего конкретного, я всего лишь бы хотел увидеть пример самой простой хэш-таблицы на С или С++. Я искал в интернете, но находил лишь огромные примеры, которые скорее запутывали меня больше, нежели разъясняли.
Jirogirg вне форума Ответить с цитированием
Старый 23.06.2012, 15:59   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,318
По умолчанию

Вот задача с решением
Переименуйте в html.
Это первая и, пока что, последняя задача на хеш-таблицы, которую решал.
Небольшое объяснение:
в решении используется массив двоичных деревьев поиска
выбор дерева осуществляется по хеш-функции
Вложения
Тип файла: txt Domain Name System.txt (5.0 Кб, 38 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 23.06.2012 в 16:01.
BDA вне форума Ответить с цитированием
Старый 23.06.2012, 16:00   #3
Jirogirg
Пользователь
 
Регистрация: 13.05.2012
Сообщений: 30
По умолчанию

Благодарю. Сейчас посмотрю.
Jirogirg вне форума Ответить с цитированием
Старый 23.06.2012, 17:31   #4
Jirogirg
Пользователь
 
Регистрация: 13.05.2012
Сообщений: 30
По умолчанию

А как вы справились без преобразования индекса в значения ключа? Я имею ввиду как раз вот использование crc32.
Jirogirg вне форума Ответить с цитированием
Старый 23.06.2012, 18:51   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,318
По умолчанию

Я пока не понял, как использовать crc32.
Получается, что функция возвращает 32-битное (минимум) число, которое предлагается использовать как индекс?

В моей программе входные данные более-менее равномерно раскладываются по 701 дереву поиска, в самом же дереве поиск осуществляется как обычно, т.е. сравнением с корнем и спуском по поддеревьям.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 23.06.2012, 22:56   #6
Jirogirg
Пользователь
 
Регистрация: 13.05.2012
Сообщений: 30
По умолчанию

Что-то не могу найти пример хеш-таблицы с CRC32. Мне просто с ней надо...
Найдётся у кого примерчик хеш-таблицы с CRC32? Буду признателен.
Jirogirg вне форума Ответить с цитированием
Старый 14.12.2012, 12:59   #7
specialist_
 
Регистрация: 14.12.2012
Сообщений: 4
По умолчанию Пример реализации хеш-таблицы

Посмотрите здесь, реализация хеш-таблицы на Delphi 7
http://dev-doc.blogspot.com/2012/12/...-httpread.html
specialist_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны три открытых хеш-таблицы... nicklifs Помощь студентам 0 11.12.2011 16:29
Паскаль: хеш-таблицы DanielDredd Помощь студентам 0 26.11.2011 14:11
Хеш-таблицы Johnson Общие вопросы Delphi 2 19.08.2011 19:49
пример построения диаграммы в Excel(e) FVGK-2009 Общие вопросы C/C++ 6 22.01.2009 20:15
Пример построения звуковой волны snake-as Мультимедиа в Delphi 2 19.10.2008 17:47