Modified search function to return data pointers and changed print function
This commit is contained in:
parent
014b381086
commit
ce8b258204
|
@ -27,7 +27,7 @@ public:
|
|||
~HashTable();
|
||||
|
||||
void insert(int id, T* n);
|
||||
bool search(int id);
|
||||
T* search(int id);
|
||||
bool remove(int id);
|
||||
|
||||
void restructure();
|
||||
|
@ -77,16 +77,15 @@ int HashTable<T>::hash(int id) {
|
|||
}
|
||||
|
||||
template < typename T >
|
||||
bool HashTable<T>::search(int id) {
|
||||
T* HashTable<T>::search(int id) {
|
||||
int index = hash(id);
|
||||
std::vector<elem> list = table.at(index).list;
|
||||
for (auto it = list.begin(); it != list.end(); ++it) {
|
||||
if (it->key == id) {
|
||||
return true;
|
||||
return it->data;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
template < typename T >
|
||||
|
@ -129,7 +128,7 @@ void HashTable<T>::print() {
|
|||
for (auto it = table.begin(); it != table.end(); ++it) {
|
||||
std::cout << "Next list" << std::endl;
|
||||
for (auto it2 = it->list.begin(); it2 != it->list.end(); ++it2) {
|
||||
std::cout << it2->data << std::endl;
|
||||
std::cout << it2->key << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -35,6 +35,8 @@ int main() {
|
|||
table.remove(30);
|
||||
|
||||
std::cout << table.search(30) << std::endl;
|
||||
std::cout << table.search(21) << std::endl;
|
||||
std::cout << table.search(20) << std::endl;
|
||||
|
||||
table.remove(40);
|
||||
|
||||
|
|
Loading…
Reference in New Issue