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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
mshurshikov
Сообщений: n/a
#1

хеш функции - C++

09.05.2010, 22:46. Просмотров 1588. Ответов 3
Метки нет (Все метки)

здраствуйте!
собственно проблема в хеш функциях. не могу разобратся в принципе (гугль и книги читал). сам принцип хеширования понятен, а вот его программная реализация не очень.
например если у меня есть ряд целых чисел и мне надо распределить эти числа по блокам. то для каждого блока нужен массив?
условие задачи таково:
Дан ряд чисел, использую хэш функции распределить это число по n блокам. В каждом блоке должен быть организован стэк или очередь. Для характеристики этой структуры надо сформировать массив указателей на начало блоков. Производить такие действия с блоками: поиск элементов в блоке, вставка, удаление элемента из блока.
меня интересует именно как сформировать эти самые блоки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2010, 22:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос хеш функции (C++):

Оценка хеш-функции - C++
Допустим, имеется некая хеш функция f(n)=n и необходимо оценить её качество. Я понимаю, что нужно провести анализ на предмет...

Вычисление хеш-функции - C++
Нужна помощь в реализации хеш-функции. Для алгоритма Эль-гамаля ( режим подписи ) необходимо вычислить хеш-функцию, но я не знаю как. ...

Неправильная работа хеш-функции - C++
Прежде чем начать не нужно сразу кидаться тапками и и.т.д я уже парюсь над этой задачей несколько дней так как не могу. Я читал несколько...

Хеш-функции. Метод открытого хеширования - C++
Написать программу, которая реализует метод открытого хеширования и хеш-функцией, основанной на методе деления со остатком. Если можно, то...

Ошибка в реализации хеш-функции SHA1 - C++
Здравствуйте, Решил написать простую реализацию, но результат вычислений оставляет желать лучшего Подскажите, пожалуйста, какой нюанс я...

Построение таблиц идентификаторов (хеш-функции, рехеширование) - C++
построить таблицу идентификаторов методом хэш-функции, использование метода рехеширования.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
10.05.2010, 11:04 #2
В простом варианте каждый блок - это динамический массив
У тебя в задании написано что каждый блок - это стек или очередь
Вот и делай стек или очередь
То есть в данном случае у тебя будет что блок -
это некая структура, которая содержит ссылку на такую же структуру
или NULL, если ссылка последняя
Ну и разумеется само число

C
1
2
3
4
struct block_t {
    struct block_t *next;
    int number;
}
1
mshurshikov
Сообщений: n/a
10.05.2010, 14:52 #3
а количество структур равно количеству блоков так?
и в структуре помимо указателя содержатся числа которые попадают под категорию разделения.
я правильно понял?
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
10.05.2010, 21:09 #4
да - правильно
неужели очереди и стеки не изучали ?

начальный ход
имеем массив указателей struct block_t *hash_root;
хеш-функция должна выдавать значения от 0 до n-1
в зависимости от этого переходим в соответствующий блок

C
1
2
3
4
5
6
int hash_value= hash_func( some_number );
if ( hash_root[hash_value] == NULL ) {
   // цепочка блоков пуста
} else {
   // оба на - что-то есть
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2010, 21:09
Привет! Вот еще темы с ответами:

Хеш функция - C++
Всем добрый день! В общем, нужно подсчитать кол-во коллизий. За это отвечает функция size_t collisions_count(), но почему-то не...

Хеш-таблица - C++
В спортивных соревнованиях участвуют n команд. В файле SPORT содержатся прогнозы результатов соревнований. Каждый прогноз включает номер...

Хеш таблица - C++
Нужно написать прогу которая подсчитает количество слов, с помощью хеш таблицы. Но хотоелось бы посмотреть на примеры программ их...

Хеш таблицы - C++
Начал изучать хеш таблицы. Подскажите насчёт хеш таблиц с открытимы адрессами: - Должны ли мы инициализировать значение ключа...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.05.2010, 21:09
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru