0 / 0 / 0
Регистрация: 23.09.2020
Сообщений: 78
1

Добавить коллизию в хеш-таблицу

28.03.2022, 18:38. Показов 244. Ответов 0

Author24 — интернет-сервис помощи студентам
Мне нужно сделать хеширование методом деления и разрешение коллизии методом квадратичное апробирование.

Помогите пожалуйста добавить разрешение коллизии.

Может ещё подскажите где код подправить .

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
66
67
68
69
70
71
72
73
74
#include <iostream>
#include <list>
using namespace std;
 
class HashTable
{
    int capacity;
    list<int>* table;
 
public:
    HashTable(int V);
    void insertItem(int key, int data);
    void deleteItem(int key);
 
    
 
    int hashFunction(int key)
    {
        return (key % capacity);
    }
    void displayHash();
};
HashTable::HashTable(int c)
{
    int size = c;
    this->capacity = size;
    table = new list<int>[capacity];
}
void HashTable::insertItem(int key, int data)
{
    int index = hashFunction(key);
    table[index].push_back(data);
}
 
void HashTable::deleteItem(int key)
{
    int index = hashFunction(key);
 
    list<int>::iterator i;
    for (i = table[index].begin();
        i != table[index].end(); i++)
    {
        if (*i == key)
            break;
    }
 
    if (i != table[index].end())
        table[index].erase(i);
}
 
void HashTable::displayHash()
{
    for (int i = 0; i < capacity; i++)
    {
        cout << "table[" << i << "]";
        for (auto x : table[i])
            cout << " --> " << x;
        cout << endl;
    }
}
 
int main()
{
    int key[] = { 11, 2, 9, 10, 12, 1 };
    int data[] = { 123, 432, 523, 43, 42, 111 };
    int size = 20;
 
    HashTable h(size);
 
    for (int i = 0; i <9; i++)
        h.insertItem(key[i], data[i]);
 
   // h.deleteItem(12);
    h.displayHash();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2022, 18:38
Ответы с готовыми решениями:

Организовать хеш-таблицу с открытой адресацией, используя хеш-функцию h(k)=trunc(M*Frac(k*d), где d=(sqrt(5)
Помогите пожалуйста доработать программу: unit Unit1; interface uses Windows, Messages,...

Установить фон(картинку), добавить таблицу, добавить таблице прозрачность и окрасить таблицу построчно
есть 2 компилируемых кода, нужно код с таблицей вставить в код с меню(или наоборот, не знаю как...

хеш таблицу
Создать динамическую структуру, которая представляет собой хеш таблицу, значения которой могут...

Организовать хеш-таблицу
Организовать хеш-таблицу, используя h(x) по методу умножения для формирования хеш-адреса....

Построить хеш-таблицу
Помогите пожалуйста. Нужно считать с файла текст например: &quot; asd qwe zxc &quot; и из слов этого файла...

0
28.03.2022, 18:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2022, 18:38
Помогаю со студенческими работами здесь

Разработать хеш-таблицу
Задача: &quot;Разработать хеш-таблицу для поиска пассажира рейса самолета. | номер рейса |...

Создать хеш таблицу
Нужно создать хеш-таблицу вида:Страна=стоймость,Страна=стоймость.Для пользователя предкмотреть...

Реализовать хеш-таблицу
Помогите пожалуйста реализовать класс , реализующий хеш-таблицу. Стандартный класс Hashtable...

Как реализовать хеш-таблицу?
У меня есть выпадающий список, в котором 57 значений. Надо, чтобы при выборе определенного значения...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru