Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Apelsin199
11 / 11 / 0
Регистрация: 04.11.2012
Сообщений: 127
1

Хеширование

01.03.2013, 16:41. Просмотров 1258. Ответов 1
Метки нет (Все метки)

Вот такая проблема... Точнее их много, но если по порядку, то сейчас только такая проблема:
Хеширование, методом середины квадрата, разрешение коллизий: метод открытая адресация.
Есть код:

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <clocale>
#include <stdio.h>
#include<conio.h>
 
class hashTable
{
public:
    void Add (char *str);
    bool Contains (char *str);
    void Delete (char *str);
    
    hashTable()
    {
        // create array default size
        size=100;
    }
    hashTable(int size)
    {
        // create array[size]
        //arr=new char[size];
    }
    ~hashTable();
private:
    // array of string/pair<int, string>
    // array size
    //метод открытой адресации подразумевает иметь массив 
    //типа "ключ-значение", то бишь пару...
    int size;
    char *arr[256];
    int hashKey (char *str);
};
 
int hashTable :: hashKey (char *str)
{
    unsigned char key=0;
    while(*str)
    {
        key +=*str;
        *str++;
    }
    key*=key;
    key=key%256;
    return key;
}
 
void hashTable :: Add (char *str)//????o_O
{
    
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    FILE *in;
    in=fopen("input.txt","r");
    hashTable table;
    char *str;
    while(!feof(in))
    {
        fscanf(in,"%s", &str);
        table.Add(str);
    }
    getch();
    return 0;
}
Там еще по сути ничего нет... Но вот в чем проблема, как понять вот эту фразу:
//метод открытой адресации подразумевает иметь массив
//типа "ключ-значение", то бишь пару...
каким образом в одном массиве хранить пару значений?... Можно, точнее, очень желательно с примером на С++...
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2013, 16:41
Ответы с готовыми решениями:

Хеширование
Помогите, пожалуйста.Поиск в хеш-таблицах. Написать класс Group. В группу должны входить студенты,...

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

Хеширование
1. Реализовать интерактивное приложение со следующей функциональностью, использующее вышеописанный...

Хеширование
1. Реализовать интерактивное приложение со следующей функциональностью, использующее вышеописанный...

Хеширование идентификаторов
Написал программу на пк. Понес сдавать преподу на ноуте. Но ноуте почему-то не работает так, как...

1
ITcrusader
Эксперт С++
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
01.03.2013, 17:38 2
Цитата Сообщение от Apelsin199 Посмотреть сообщение
каким образом в одном массиве хранить пару значений?... Можно, точнее, очень желательно с примером на С++...
использовать
C++
1
std::pair<...
как вариант
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2013, 17:38

открытое хеширование
помогите запустить программу ошибка в 13 строке. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...

Хеширование файлов
Доброго времени суток) Я в этой теме пока мало что понимаю, но может мне может кто то объяснить,...

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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