Форум программистов, компьютерный форум CyberForum.ru

хеширование - C++

Восстановить пароль Регистрация
 
ant93
0 / 0 / 0
Регистрация: 16.02.2013
Сообщений: 33
26.04.2013, 17:58     хеширование #1
Написать функцию int incl_lexm (char *p_lexm, char type _lexm), которая методом хеширования для строки, адресуемой p_lexm, определяет свободную позицию в таблице tabl, и если в ней отсутствует идентичная строка, то включает ее адрес в таблицу. Возвращается индекс включения адреса или индекс адреса идентичной строки. Помимо адреса включается тип лексемы: идентификатор или константа (признаки "i" и "с").Если включается константа, то ее значение переводится в число и, если оно по модулю больше 215 -1 , то заменяется на 215 -1. Полученное число вносится в таблицу. Если адрес нельзя включить в таблицу, то выдается сообщение: "не могу включить аргумент в таблицу из-за переполнения".

Метод хеширования.
Из кода каждой литеры удаляются три старших разряда, оставшиеся разряды трех кодов объединяются в 15-ти битовый код и интерпретируются как код двоичного числа. Все двоичные числа, полученные из всех кодов строки, суммируются и делятся с остатком на VTABL_ELM. Этот остаток и является стартовым числом при поиске свободного места в таблице.

Если указанная позиция свободна, то выполняются включения, иначе строки проверяются на идентичность. Если строки не идентичны, то следующая позиция отстоит от предыдущей на остаток от деления первого кодового числа на STEP_HESH. Этот процесс повторяется до тех пор, пока не будет найдена идентичная строка или свободная, или получено вновь стартовое число, что означает переполнение таблицы и невозможности включить в нее новый элемент.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2013, 17:58     хеширование
Посмотрите здесь:

C++ Хеширование
C++ Хеширование
Хеширование C++
Хеширование C++
C++ Хеширование пароля
C++ Хеширование
C++ Хеширование чисел
Хеширование строки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 16:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru