|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.02.2010, 17:21 | #1 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 162
|
В общем голова распухла с лабой по хешированию... да,кстати, всем привет...
В общем проблема такая Код:
h - это результат хеш-функции, оная указывает нам каким индексом обязан будет обладать элемент в основной таблице. Если указываемый АШем индекс уже занят, то мы идем в не очень основную таблицу и там в первом же свободном поле пишем этот элемент,а в поле index уже занятой ячейки в осн табл пишем индекс, который занял новый элемент. Представим, что хеш дало 8. Пишем в 8ю ячейку инфу. Хеш опять дало 8, для других данных. Значит пишем в 0ю ячейку доп.таблицы этот элемент, и делаем tab[8]->index=0 (эт для наглядности не подумайте ) Опять хеш дает 8, а в главной таблице поле индекс забито, значит делается то же что и тогда, только в 1-ю ячейку пишутся данные (осн таблицы) только поле "индекс" переписывается уже в нулевой яче доп табл... Проблема - не могу организовать рекурсию (я думаю что здесь рекурсия нужна)с таким усмотром, что у нас колизийных элементов бесконечно много...( а не пачка if, else) В общем код что вверху надо просто организовать рекурсивно... Мне уже к завтра сдавать, помогите додумать, а то brain power идет уже к zero... tab - основная таблица extratab- дополнительная таблица i- индекс в доп.таблице (чтоб по новой не проходить таблицу сохраняем индекс последнего занесенного эл-та) h- результат хеш-функции похоже тут надо цикл... Код:
С наилучшими пожеланиями.
Последний раз редактировалось Stilet; 08.02.2010 в 09:41. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++ програмка для решения примера | askerpro | Помощь студентам | 0 | 17.09.2009 21:16 |
Пишу курсовую нужно решить задачу для примера на геометрическую прогрессию (Pascal) | =|винтик|= | Помощь студентам | 4 | 25.05.2009 16:38 |
Решение мат. примера | Kashp | Помощь студентам | 2 | 21.09.2008 11:19 |
Помогите организовать добавление в memo или listbox... | Arkuz | Компоненты Delphi | 6 | 25.04.2008 18:16 |