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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск минимального элемента идеально сбалансированного дерева http://www.cyberforum.ru/cpp-beginners/thread849430.html
Как найти минимальный элемент? Вообще не представляю. зы. Дерево поиска другой разговор.
C++ Выход за пределы массива? Проблема с работой кода. при выполнении выскакивает ошибка "HEAP CORRUPTION DETECTED: after Normal block (#912) at 0x022E82C8 CRT detected that the application wrote to memory after end of heap buffer." #include "xopenssl.h" #include "openssl/evp.h" #include "openssl/rsa.h" #include "openssl/pem.h" #include "openssl/bio.h" #include "openssl/rand.h" http://www.cyberforum.ru/cpp-beginners/thread849422.html
Подсчитать количество целых среди чисел a.b.c C++
Подсчитать количество целых среди чисел a.b.c Добавлено через 6 минут помогите срочно надо Добавлено через 2 часа 8 минут =(((((((((((((((((((( Добавлено через 40 минут ну что так не кто и не поможет?
Проверить будут ли они сторонами треугольника C++
Даны три положительных числа a.b.c. Проверить будут ли они сторонами треугольника. Если да то вычислить площадь этого треугольника Добавлено через 8 минут помогите(((
C++ Найти координаты точек пересечения прямой и окружности http://www.cyberforum.ru/cpp-beginners/thread849409.html
Найти координаты точек пересечения прямой y=kx+b и окружности радиуса R с центром в начале координат. В каких координатных четвертях находятся точки пересечения? Если точек пересечения нет или прямая касается окружности, выдать соответствующее сообщение
C++ Компьютер угадывает число. Задача решена, как считаете? (вектор и цикл) Компьютер должен угадать задуманное пользователем число с 7-ми попыток. Хотел написать с использованием циклов, а не просто перебором if-else. Но не всегда получается, как я смотрю. Есть ли какое математическое решение для правильного выбора слагаемых op при проверке в цикле, а то не всегда 7 раз хватает? Можно ли решать задачу решенной? vector<int> op(7); op=25; ... подробнее

Показать сообщение отдельно
ant93
0 / 0 / 0
Регистрация: 16.02.2013
Сообщений: 33

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

26.04.2013, 17:58. Просмотров 392. Ответов 0
Метки (Все метки)

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

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

Если указанная позиция свободна, то выполняются включения, иначе строки проверяются на идентичность. Если строки не идентичны, то следующая позиция отстоит от предыдущей на остаток от деления первого кодового числа на STEP_HESH. Этот процесс повторяется до тех пор, пока не будет найдена идентичная строка или свободная, или получено вновь стартовое число, что означает переполнение таблицы и невозможности включить в нее новый элемент.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru