|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.01.2014, 20:52 | #1 |
Форумчанин
Регистрация: 03.04.2013
Сообщений: 167
|
открытое хеширование
Данные о каждом читателе должны содержать:
№ читательского билета – строка формата «ANNNN-YY», где A – буква, обозначающая права доступа читателя (А – только абонемент, Ч – только читальный зал, В – читальный зал и абонемент), NNNN – порядковый номер регистрации (цифры), YY – последние две цифры номера года регистрации; ФИО – строка; Год рождения – целое; Адрес – строка; Место работы/учебы – строка. Данные о читателях должны быть организованны в виде хеш-таблицы, первичным ключом которой является «№ читательского билета» Метод хеширования определяется вариантом задания. Вопрос - я правильно представил ниже метод открытого хеширования? Т.е. я представляю эти данные с помощью двумерного массива,где первый столбец это номер читательского билета Из номера читательского билета Первичным ключом является только кусок - NNNN Я ввожу к примеру 0003 и мой цикл пробегает по первому столбцу и останавливается на той строчке у которой NNNN = 0003 ,когда он ее найдет,он возвращает индекс этой строчки и по этому индексу я вывожу строчку с данными полного номера читательского билета и далее выводятся строчки столбцов ФИО ;Год рождения;Адрес ;Место работы/учебы по данному найденному индексу выше. Последний раз редактировалось alekopoko; 10.01.2014 в 21:23. |
10.01.2014, 21:57 | #2 | |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
Цитата:
У Вас имеется ключ - № читательского билета. Открытое хеширование - это есть массив списков. Почему оно называется открытое? Потому что сами элементы хранятся не внутри таблицы, а вне ее. Также у Вас есть хеш функция, которая по заданному ключу вычисляет адрес в нашей хеш таблице. Коллизии как таковые здесь не разрешаются, так как у нас метод цепочек переполнения (что специфично для открытого хеширование) элемент просто добавляется в соответствующий список. Последний раз редактировалось Базиля; 10.01.2014 в 22:08. |
|
10.01.2014, 22:29 | #3 |
Форумчанин
Регистрация: 03.04.2013
Сообщений: 167
|
НО тогда получается что мы отдираем целый столбец от таблицы данных т.к. по методу открытого хеширования ключ должен быть вне таблицы
Или значения ключа не должны совпадать со значением № читательского билета? |
10.01.2014, 22:39 | #4 | ||
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
Цитата:
У нас изначально ничего нет. Отдирать нечего. Откуда Вы взяли таблицу с данными? Что это за таблица? Да, элементы хранятся вне самой таблицы. Цитата:
Номер читательского это и есть ключ. Задача хеш функции - получить по ключу адрес в таблице. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хеширование | Vladislaw.onisckif | Общие вопросы C/C++ | 0 | 25.11.2013 22:12 |
Хеширование: | Necare | Помощь студентам | 5 | 21.03.2011 19:46 |
Открытое письмо россиянской «элите» | mihali4 | Свободное общение | 37 | 23.11.2010 08:30 |
активировать уже открытое приложение (одно из окон) по части названия и его корректно закрыть | Yuri_K | Microsoft Office Excel | 1 | 25.11.2009 23:47 |
активировать уже открытое приложение (одно из окон) по части названия и его корректно закрыть | Yuri_K | JavaScript, Ajax | 0 | 25.11.2009 22:26 |