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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.69
as
36 / 22 / 3
Регистрация: 14.02.2009
Сообщений: 355
#1

ХЕШИРОВАНИЕ - C++

22.12.2009, 21:59. Просмотров 1967. Ответов 0
Метки нет (Все метки)

Всем привет!
Нужно написать лабу по линейному зондированию.
Взял из Седжвика алгоритм, но он не работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
template <class Item, class Key>class ST
{
public:
Item *st;
int N, M;
Item nul1Item;
 
ST(int maxN)
{
 N = 0; M = 2*maxN;
 st = new Item[M] ;
 for (int i = 0; i < M; i++)
 st[i] = nul1Item;
}
 
int count() const { return N; }
 
void insert(Item item)
 { int i = hash (item.key (), M) ;
   while (!st[i].null()) i = (i+1)% M;
   st[i] = item; N++;
}
 
Item search (Key v)
 { int i = hash(v, M) ;
   while (!st[i].null())
    if (v = st[i].key()) return st[i] ;
    else i = (i+1) % M;
   return nul1Item;
}
 
int hash(Key v, int M)
 {return (int) M*(v-5)/(10-5);}
 
};
 
 
int main()
{
    ST<int,int> myq(15);
    cout<<"ishodnij masiv ->\n\n";
    for(int i=0; i<=15; i++){
    myq.st[i]=5+(double) rand()/RAND_MAX*(10-5);
    cout<<" "<<myq.st[i];} cout<<"\n\n";
    myq.hash(8,15);
    myq.search(7);
    for(int y=0; y<=15; y++){
    cout<<" "<<myq.st[y];}
    return 0;
}
Компилятор ругается при вызове myq.search(7);
пишет что ошибка в строчках:
while (!st[i].null())
if (v = st[i].key()) return st[i] ;

null() и key() нигде не описана и я не знаю что в них писать...
Помогите пожалуйста разобраться!!!

Добавлено через 1 час 23 минуты
Где найти описание ф-ий null() и key()?
Или хотя бы что в них должно делаться?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2009, 21:59     ХЕШИРОВАНИЕ
Посмотрите здесь:

Хеширование - C++
У меня есть вариант хешировани данных для ГОСТ 28147-89. Помогите ее переделать под ГОСТ Р 34.11-94. вот...

Хеширование чисел - C++
Здравствуйте, прочел пост taras atavin И стало интересно, действительно ли такое можно сделать ? реально ли хешировать число до 70...

Наследование, классы, хеширование - C++
есть у кого простые задачи на эти темы? у меня задания нет, нужны любые... по поиску полазил- не нашёл ничего лёгкого=(

Хеширование-метод середины квадрата - C++
Вот такая ситуация... Тип данных строки, метод разрешения колизии &quot;открытая адресация&quot;. Проблема в самой хеш-функции, прочитал много...

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

Хеширование двух байтов в один - C++
Здравствуйте, возможно ли хеширование двух байтов в один, если да, то смогу ли я путем подбора/брутфорса получить из этого одного байта...

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

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

Хеширование: реализовать пользовательский поиск ключа - C++
Всем привет! Ребята очень нуждаюсь в вашей помощи. Есть хеш функция: #include &lt;iostream&gt; #include &lt;time.h&gt; using namespace...

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


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

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

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