Advertisement
Sanlover

Untitled

Mar 24th, 2023
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4.  
  5. using namespace std;
  6.  
  7. const int m = 1000; // Размер хеш-таблицы
  8.  
  9. struct Node
  10. {
  11. int key;
  12. Node* next;
  13.  
  14. Node(int k) : key(k), next(nullptr)
  15. {
  16. }
  17. };
  18.  
  19. vector<Node*> table(m, nullptr); // Хеш-таблица
  20.  
  21. // Функция хеширования
  22. int hash_func(int key)
  23. {
  24. return key % m;
  25. }
  26.  
  27. // Функция добавления элемента в хеш-таблицу
  28. void insert(int key)
  29. {
  30. int h = hash_func(key);
  31. Node* node = new Node(key);
  32. node->next = table[h];
  33. table[h] = node;
  34. }
  35.  
  36. // Функция поиска максимального элемента в хеш-таблице
  37. int max_element()
  38. {
  39. int max = 0;
  40. for (int i = 0; i < m; i++)
  41. {
  42. Node* node = table[i];
  43. while (node != nullptr)
  44. {
  45. if (node->key > max)
  46. {
  47. max = node->key;
  48. }
  49. node = node->next;
  50. }
  51. }
  52. return max;
  53. }
  54.  
  55. // Функция вывода содержимого хеш-таблицы
  56. void print_table()
  57. {
  58. for (int i = 0; i < m; i++)
  59. {
  60. cout << "Хеш " << i << ": ";
  61. Node* node = table[i];
  62. while (node != nullptr)
  63. {
  64. cout << node->key << " ";
  65. node = node->next;
  66. }
  67. cout << endl;
  68. }
  69. }
  70.  
  71. int main()
  72. {
  73. // Заполнение хеш-таблицы случайными тремзначными числами
  74. for (int i = 0; i < 100; i++)
  75. {
  76. int key = rand() % 900 + 100;
  77. insert(key);
  78. }
  79. // Вывод содержимого хеш-таблицы
  80. print_table();
  81. // Поиск максимального элемента в хеш-таблице
  82. int max = max_element();
  83. cout << "Максимальный элемент в хеш-таблице: " << max << endl;
  84. return 0;
  85. }
  86.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement