Я пытаюсь реализовать хэш-функцию h(x) = x % 127
в виде массива связанных списков. В настоящее время я создал функцию добавления, где я добавляю новые узлы в связанные списки, однако я не понимаю, почему ничего не пишется ни в одном связанном списке. Я читаю номер ввода из файла и отправляю его в связанный список как ввод% 127.
#include<iostream>
#include<cstdlib>
#include<fstream>
//#define prim 127
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
struct nod {
int info;
nod *next;
};
void add_nod(nod *p, nod *&u, int info) {
if (p == NULL) {
p = new nod;
p->info = info;
u = p;
u->next = NULL;
}
else {
nod *c = new nod;
c->info = info;
u->next = c;
u = c;
u->next = NULL;
}
}
int main()
{
int nr_op, op, x, prim = 127;
nod * p[127], *u[127];
for (int i = 0; i < prim; i++) {
p[i] = u[i] = NULL;
}
f >> nr_op;
while (!f.eof()) {
f >> op >> x;
if (op == 1) {
//delete_nod(p[x%prim], u[x%prim], x);
}
if (op == 2) {
add_nod(p[x%prim], u[x%prim], x);
}
if (op == 3) {
//search_nod(p[x%prim], u[x%prim], x);
}
}
//printing an array of linked lists
for (int i = 0; i < prim; i++) {
if (p[i] != NULL) {
nod *c;
c = p[i];
cout << i << ": ";
while (c != NULL) {
cout << c->info << " ";
c = c->next;
}
}
}
system("Pause");
return 0;
}
Мой входной файл permutari.in
содержит:
7
1 3
1 20
2 7
3 4
3 20
2 20
3 20