|
今天学数据结构, 写了HASH, 学习中, 坚持;(2) } T * find(const Key &key) { unsigned int i = (unsigned int)key % _mod; for(node *p = _head[i]; p; p = p->_next) { if(p->_key == key) return &p->_data; } return NULL; } void pop(const Key &key) { unsigned int i = (unsigned int)key % _mod; node *t = NULL, *pre = NULL; if(_head[i]) { if(_head[i]->_key == key) t = _head[i], _head[i] = _head[i]->_next; else { for(pre = _head[i], t = pre->_next; t; t = t->_next) { if(t->_key == key) { pre->_next = t->_next; break; } } } } if(t) delete t; } void pop(const Key &key, T &data) { unsigned int i = (unsigned int)key % _mod; node *t = NULL, *pre = NULL; if(_head[i]) { if(_head[i]->_key == key) t = _head[i], _head[i] = _head[i]->_next; else { for(pre = _head[i], t = pre->_next; t; t = t->_next) { if(t->_key == key) { pre->_next = t->_next; break; } }
|