Guest User

Untitled

a guest
Jan 18th, 2019
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. struct foo
  2. {
  3. Data data;
  4. foo* next;
  5. foo** prevNext;
  6. };
  7.  
  8. HashTable<foo> hash;
  9.  
  10. template <class T>
  11. void HashTable<T>::insert(T* x)
  12. {
  13. int bucket = hashFunc(x->data);
  14. T** xPtr = &elements_[bucket];
  15. x->next = *xPtr;
  16. x->prevNext = xPtr;
  17.  
  18. if (x->next)
  19. x->next->prevNext = &x->next;
  20.  
  21. *xPtr = x;
  22. }
  23.  
  24. template<class T>
  25. void HashTable<T>::remove(T* x)
  26. {
  27. if (x->next)
  28. x->next->prevNext = x->prevNext;
  29.  
  30. *x->prevNext = x->next;
  31. }
  32.  
  33. template<class T>
  34. T* HashTable<T>::find(Data& data)
  35. {
  36. int bucket = hashFunc(data);
  37.  
  38. T* ptr = elements_[bucket];
  39. while (ptr != 0)
  40. {
  41. if(ptr->data == data)
  42. return ptr;
  43. ptr = ptr->next;
  44. }
  45. return 0;
  46. }
Add Comment
Please, Sign In to add comment