Alex_tz307

Hash C

Sep 12th, 2020
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.82 KB | None | 0 0
  1. struct Nod {
  2.   int info, freq;
  3.   Nod *next;
  4. } *Hash[MOD];
  5.  
  6. void Add (int x) {
  7.   int key = x % MOD;
  8.   Nod *node = new Nod;
  9.   node -> info = x;
  10.   node -> freq = 1;
  11.   node -> next = Hash[key];
  12.   Hash[key] = node;
  13. }
  14.  
  15. void Insert (int x) {
  16.   int key = x % MOD;
  17.   Nod *node = Hash[key];
  18.   while (node && node -> info != x)
  19.     node = node -> next;
  20.   if (!node)
  21.     Add (x);
  22.   else
  23.     node -> freq ++;
  24. }
  25.  
  26. void Erase (int x) {
  27.   int key = x % MOD;
  28.   Nod *node = Hash[key];
  29.   while (node && node -> info != x)
  30.     node = node -> next;
  31.   if (node != nullptr && node -> freq > 0)
  32.     node -> freq --;
  33. }
  34.  
  35. int Find (int x) {
  36.   int key = x % MOD;
  37.   Nod *node = Hash[key];
  38.   while (node != nullptr && node -> info != x)
  39.     node = node -> next;
  40.   if (node == nullptr)
  41.     return 0;
  42.   else
  43.     return node -> freq;
  44. }
Add Comment
Please, Sign In to add comment