Vlad5080

ciaod

Oct 6th, 2020
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.75 KB | None | 0 0
  1. #pragma once
  2. class HashTableList
  3. {
  4.    
  5.         static const int default_size = 17; // нач размер табицы
  6.  
  7.         constexpr static const double rehash_size = 0.75;//коэф увеличени\ таблицы
  8.  
  9.         struct Node {
  10.             int key;
  11.             int value; // индекс элемента в массиве с данными по ключу
  12.             Node *next; // признак свободного\ зан\того адреса
  13.         };
  14.  
  15.  
  16.  
  17.         Node* arr; // соответственно в масиссиве будут храниться
  18.                     // структуры NODE
  19.         int size; // сколько элементов у нас сейчас в массиве
  20.         int buffer_size; //  без учета удаленных
  21.                                 // размер самого массива, сколько памяти выделено на хранение нашей таблицы
  22.         int size_all_non_nullptr; // сколько элементов у нас сейчас в массиве
  23.  
  24.  
  25.  
  26.  
  27.         HashTableList();
  28.  
  29.         ~HashTableList();
  30.  
  31.         bool Insert(const int value1, int key1);
  32.         void Rehash();
  33.  
  34.         int Find(int key);
  35.  
  36.         void Delete(int key);
  37.  
  38.  
  39.  
  40. };
  41. \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  42.  
  43.  
  44.  
  45. #include "HashTable.h"
  46.  
  47. HashTable::HashTable()
  48. {
  49.     buffer_size = default_size;
  50.     size = 0;
  51.     arr = new Node[buffer_size];
  52.     for (int i = 0; i < buffer_size; i++) {
  53.         arr[i].freeNode = true;
  54.     }
  55. }
  56.  
  57. HashTable::~HashTable()
  58. {
  59.     delete[]arr;
  60. }
  61. \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  62.  
  63.  
  64. #pragma once
  65.  
  66. //таблица с открытыфм адресом
  67. class HashTable
  68. {
  69.     static const int default_size = 17; // нач размер табицы
  70.  
  71.     constexpr static const double rehash_size = 0.75;//коэф увеличени\ таблицы
  72.  
  73.     struct Node {
  74.         int key;
  75.         int value; // индекс элемента в массиве с данными по ключу
  76.         bool freeNode; // признак свободного\ зан\того адреса
  77.     };
  78.  
  79.  
  80.  
  81.     Node* arr; // соответственно в масиссиве будут храниться
  82.                 // структуры NODE
  83.     int size; // сколько элементов у нас сейчас в массиве
  84.     int buffer_size; //  без учета удаленных
  85.                             // размер самого массива, сколько памяти выделено на хранение нашей таблицы
  86.     int size_all_non_nullptr; // сколько элементов у нас сейчас в массиве
  87.  
  88.  
  89.  
  90.  
  91.     HashTable();
  92.     ~HashTable();
  93.  
  94.     bool Insert(const int value1, int key1);
  95.     void Rehash();
  96.  
  97.     int Find(int key);
  98.  
  99.     void Delete(int key);
  100.  
  101.  
  102. };
  103.  
  104.  
  105.  
Advertisement
Add Comment
Please, Sign In to add comment