Вывод списка после цепного хэширования
Изучаю алгоритм цепного хэширования таблицы. Для этого создал структуру table. Написал класс HashingTable, метод добавляет элемент в таблицу. Однако у меня не получается сделать метод с выводом всего списка (printTable), что бы проверить, правильно ли происходит хэширование. Буду благодарен, если подскажете как реализовать данный метод.
#include <iostream>
using namespace std;
struct table {
int num;
string fio;
string adress;
table* n;
table* p;
table(int num, string fio, string adress) {
this->num = num;
this->adress = adress;
this->fio = fio;
this->n = NULL;
}
};
class HashingTable {
private:
table** ht;
table** pop;
public:
HashingTable() {
ht = new table * [100];
for (int i = 0; i < 100; i++) {
ht[i] = NULL;
}
}
int hash(int x) {
return x % 10;
}
void insertItem(int num, string fio, string adress) {
int hash_id = hash(num);
table* p = NULL;
table* en = ht[hash_id];
while (en != NULL) {
p = en;
en = en->n;
}
if (en == NULL) {
en = new table(num, fio, adress);
if (p == NULL) {
ht[hash_id] = en;
}
else {
p->n = en;
}
}
else {
en->num = num;
}
}
void printTable() {
table* en = ht[0];
cout << en->n;
}
};
int main()
{
HashingTable hashingTable;
hashingTable.insertItem(12, "ADV", "Parkovaya");
hashingTable.insertItem(3, "DHR", "Pervomaiskaya");
hashingTable.printTable();
}