Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- const int m = 1000; // Размер хеш-таблицы
- struct Node
- {
- int key;
- Node* next;
- Node(int k) : key(k), next(nullptr)
- {
- }
- };
- vector<Node*> table(m, nullptr); // Хеш-таблица
- // Функция хеширования
- int hash_func(int key)
- {
- return key % m;
- }
- // Функция добавления элемента в хеш-таблицу
- void insert(int key)
- {
- int h = hash_func(key);
- Node* node = new Node(key);
- node->next = table[h];
- table[h] = node;
- }
- // Функция поиска максимального элемента в хеш-таблице
- int max_element()
- {
- int max = 0;
- for (int i = 0; i < m; i++)
- {
- Node* node = table[i];
- while (node != nullptr)
- {
- if (node->key > max)
- {
- max = node->key;
- }
- node = node->next;
- }
- }
- return max;
- }
- // Функция вывода содержимого хеш-таблицы
- void print_table()
- {
- for (int i = 0; i < m; i++)
- {
- cout << "Хеш " << i << ": ";
- Node* node = table[i];
- while (node != nullptr)
- {
- cout << node->key << " ";
- node = node->next;
- }
- cout << endl;
- }
- }
- int main()
- {
- // Заполнение хеш-таблицы случайными тремзначными числами
- for (int i = 0; i < 100; i++)
- {
- int key = rand() % 900 + 100;
- insert(key);
- }
- // Вывод содержимого хеш-таблицы
- print_table();
- // Поиск максимального элемента в хеш-таблице
- int max = max_element();
- cout << "Максимальный элемент в хеш-таблице: " << max << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement