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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Алгоритмы решения задачи http://www.cyberforum.ru/cpp-beginners/thread798059.html
Ниже прикреплено мое задание, собственно программу я уже написал, мне пришло на ум два алгоритма 1) Переписывать не повторяющиеся числа из одного массива в другой, то есть мы берем число из исходного массива и записываем его во второй массив, попутно проверяя нет ли его там уже, если такое есть, то мы пропускаем его и переходим к следующему 2) Просто проходим по массиву сравнивая текущий...
C++ Взаимодействие двух объектов Есть объект класса А. В нём есть массив объектов класса В. Программой предусмотрено поочерёдное обращение к элементам массива, с целью вызова методов класса В. В классе В есть указатель на объект-родитель класса А, по которому должно происходить обращение к данным объекта класса А. Ну и собственно возникает проблема описания таких классов. В описании класса А я обращаюсь к классу В, описание... http://www.cyberforum.ru/cpp-beginners/thread798058.html
Нужен советом, что бы программа запускалась на windows 2003 server C++
Создал не сложную программу, на VisualStudio2012, на компе с windows 2003 server установил Microsoft Visual C++ 2010 Service Pack 1 (86х), Visual C++ Redistributable for Visual Studio 2012 (86х), и в проекте сборки указал "Use MFC in a Static Library" - "Use MFC in a Static Library". Но при запуске выдает ошибку "CRC-32 is not a valid Win32 application". Что делать ? Добавлено через 1 час 23...
C++ Заполнение пятимерного массива
Здравствуйте! В книге Бондарева В.М. "Программирование на С++" приведена следующая задачка: Разместите в свободной памяти 5-мерный массив размером 2*2*2*2*2. Заполните его числами от 0 до 31. Массив разместил и заполнил. //размещаю int ((((*M)))) = new int; //заполняю
C++ Даны 2 строки. Определить, состоят ли они из одних и тех же символов. http://www.cyberforum.ru/cpp-beginners/thread798044.html
Даны 2 строки. Определить, состоят ли они из одних и тех же символов.
C++ аналог realloc() в С++ Здравствуйте. собственно вопрос:-существует ли таковой? подробнее

Показать сообщение отдельно
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
01.03.2013, 16:41     Хеширование
Вот такая проблема... Точнее их много, но если по порядку, то сейчас только такая проблема:
Хеширование, методом середины квадрата, разрешение коллизий: метод открытая адресация.
Есть код:

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;
}
Там еще по сути ничего нет... Но вот в чем проблема, как понять вот эту фразу:
//метод открытой адресации подразумевает иметь массив
//типа "ключ-значение", то бишь пару...
каким образом в одном массиве хранить пару значений?... Можно, точнее, очень желательно с примером на С++...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru