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

Хеширование - C++

Восстановить пароль Регистрация
 
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
01.03.2013, 16:41     Хеширование #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;
}
Там еще по сути ничего нет... Но вот в чем проблема, как понять вот эту фразу:
//метод открытой адресации подразумевает иметь массив
//типа "ключ-значение", то бишь пару...
каким образом в одном массиве хранить пару значений?... Можно, точнее, очень желательно с примером на С++...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2013, 16:41     Хеширование
Посмотрите здесь:

C++ MD5 хеширование
C++ Хеширование
C++ Хеширование
Хеширование C++
C++ Хеширование пароля
C++ Хеширование
C++ Хеширование чисел
Хеширование строки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ITcrusader
Эксперт C++
 Аватар для ITcrusader
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
01.03.2013, 17:38     Хеширование #2
Цитата Сообщение от Apelsin199 Посмотреть сообщение
каким образом в одном массиве хранить пару значений?... Можно, точнее, очень желательно с примером на С++...
использовать
C++
1
std::pair<...
как вариант
Yandex
Объявления
01.03.2013, 17:38     Хеширование
Ответ Создать тему
Опции темы

Текущее время: 15:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru