Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct foo
- {
- Data data;
- foo* next;
- foo** prevNext;
- };
- HashTable<foo> hash;
- template <class T>
- void HashTable<T>::insert(T* x)
- {
- int bucket = hashFunc(x->data);
- T** xPtr = &elements_[bucket];
- x->next = *xPtr;
- x->prevNext = xPtr;
- if (x->next)
- x->next->prevNext = &x->next;
- *xPtr = x;
- }
- template<class T>
- void HashTable<T>::remove(T* x)
- {
- if (x->next)
- x->next->prevNext = x->prevNext;
- *x->prevNext = x->next;
- }
- template<class T>
- T* HashTable<T>::find(Data& data)
- {
- int bucket = hashFunc(data);
- T* ptr = elements_[bucket];
- while (ptr != 0)
- {
- if(ptr->data == data)
- return ptr;
- ptr = ptr->next;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment